众所周知,在电路和计算机里是按0/1来存储数据的,比如15对应二进制的1111,但是小数是怎么表示呢?
我们可以约定一个量程系数, 比如1000, 这样仪表的读数是1,则代表着1/1000=0.001
我们来看一个仪表的说明书,仪表返回数据038F 对应的是十进制的911,量程为10,则实际值为91.1
另外还有一种IEEE754 浮点数格式,是用4个字节表示一个32位的浮点数,我们找一个在线转换的网址来试试. 比如3.14 对应的16进制浮点数40 48 F5 C2
对应的C#代码就是下面:
//40 48 F5 C2 => 3.14
string value = "4048F5C2";//16进制字符串
UInt32 x = Convert.ToUInt32(value, 16);//字符串转16进制32位无符号整数
float fy = BitConverter.ToSingle(BitConverter.GetBytes(x), 0);//IEEE754 字节转换float
//3.14=>4048F5C2
var cc = BitConverter.GetBytes(fy);
string HexStr= string.Empty;
for (int i = 0; i < 4; i++)
{
HexStr = Convert.ToString(cc[i], 16).ToUpper() + HexStr;
}
本文暂时没有评论,来添加一个吧(●'◡'●)