添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
using System . Collections . Generic ; using System . ComponentModel ; using System . Data ; using System . Drawing ; using System . Text ; using System . Windows . Forms ; using System . IO ; using System . Threading ; using System . Runtime . InteropServices ; namespace BitConverter public partial class Form1 : Form public Form1 ( ) InitializeComponent ( ) ; private void button1_Click ( object sender , EventArgs e ) byte [ ] byteArray ; byteArray = System . BitConverter . GetBytes ( 1234.5678 ) ; MessageBox . Show ( System . BitConverter . ToString ( byteArray ) ) ; /// <summary> /// 浮点、双浮点转换成16进制 /// 1.将1234.5678转换成二进制,转换成二进制时分为整数部分和小数部分 /// 整数部分:采用求余数的方法,由下而上进行书写。100 11010010 /// 小数部分:采用*2求整数的方法,由下而上进行书写。0.1001000101011011010101110011111010101011001101101 /// 2.将数字合并:10011010010.100100010101101101010111001111101010101101 /// 3.使用科学计数法计算double:1.0011010010100100010101101101010111001111101010101101*2^10 /// 4.计算偏移值:127+10=137 /// 5.计算二进制偏移值:10001001 /// 6.64位二进制值:0-00010001001-0011010010100100010101101101010111001111101010101101 /// 7.16进制数值为:AD-FA-5C-6D-45-4A-93-40 /// </summary> private void button2_Click ( object sender , EventArgs e ) byte [ ] bb = new byte [ 8 ] ; bb [ 0 ] = 0xAD ; //10101101 bb [ 1 ] = 0xFA ; //11111010 bb [ 2 ] = 0x5C ; //01011100 bb [ 3 ] = 0x6D ; //01101101 bb [ 4 ] = 0x45 ; //01000101 bb [ 5 ] = 0x4A ; //01001010 bb [ 6 ] = 0x93 ; //10010011 bb [ 7 ] = 0x40 ; //01000000 //0*1000000 1001*0011 01001010 01000101 01101101 01011100 11111010 10101101 double i = System . BitConverter . ToDouble ( bb , 0 ) ; MessageBox . Show ( i . ToString ( ) ) ; /// <summary> /// 16进制转换成浮点、双浮点 /// 1.先将16进制值转换成2进制值:01000000 10010011 01001010 01000101 01101101 01011100 11111010 10101101 /// 2.二进制值分割:0*1000000 1001*0011 01001010 01000101 01101101 01011100 11111010 10101101 /// 3.数值分析:63位0代表正值。62位-52位代表指数位,其中有127的位偏移。51位-0位代表尾数位。 /// 4.得出的数据为137(1.0011010010100100010101101101010111001111101010101101*2^10) /// 5.根据转换16进制反推 /// </summary>
因为需要用工控机的GPIO进行通讯,所以才了解一下浮点和16进制的转换。
存入内存时需要发送和接受实际的地址的内容,也就是读取到物理地址后还需要读取到实际的value。
流程相当于DllImport----setphyport----setvalue。
                    文章目录前言一、结果图片二、源码如下(附加解释说明)1.引入库总结前言读取写入内存时会使用浮点类型转换成16进制,总结一下c#中方法和相关的程序。一、结果图片二、源码如下(附加解释说明)1.引入库代码如下(示例):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;u
				
有时候,笔者遇到需要将浮点数转换成十六进制数后,与其他设备相互进行通信的情况。所以,为了便于验证数据是否正确和练习C#编程,就写了一个小小小小小工具。 首先是要读取TextBox中输入的浮点数(包括单精度float和双精度double),具体方法程序参考笔者之前的博客C#使用TextBox作数据输入方法 既然是两种数据类型互转,所以还以使用TextBox输入十六进制数。具体方法程序如下: private void button3_Click(object sender, EventArgs e) string str = "hello world"; byte[] bytes = Encoding.Default.GetBytes(str); string hexString = BitConverter.ToString(bytes).Replace("-", ""); 首先,使用 `Encoding.Default.GetBytes()` 方法将字符串转换为字节数组。然后,使用 `BitConverter.ToString()` 方法将字节数组转换16进制字符串,并使用 `Replace()` 方法将其中的横杠 `-` 去掉,最终得到的就是一个16进制的字符串。如果需要将16进制字符串转换回字节数组,可以使用 `BitConverter` 类中的 `Parse()` 或者 `TryParse()` 方法。
Unity使用c#开发HoloLens2项目(十八)(使用MRTK后点击 Holographic Remoting For Play Mode无反应或Remote Host Port是多少) 我的创作纪念日