Java中怎样将十进制浮点数转换为十六进制

Python018

Java中怎样将十进制浮点数转换为十六进制,第1张

浮点数与十六进制数如何互相转换

在基于C#的网络通讯中,上位机将有发送的浮点数f转换为16进制数

float f = 1.2f

string s = BitConverter.ToString(BitConverter.GetBytes(f)).Replace( "- ", " ")

在C#中,下位机返回的16进制浮点数,先去除数据“FF FF FF FF”中的空格

再按2个字符一截取的转换为十进Byte数组后用BitConverter.ToSingle()方法将数据转换为f1,fi.ToString()转换字符串。

//s = s.Replace( " ", " ")//如果中间有空格

byte[] arr = new byte[s.Length / 2]

for (int i = 0i <s.Length / 2i++)

{

arr[i] = Convert.ToByte(s.Substring(i * 2, 2), 16)

}

float f1 = BitConverter.ToSingle(arr, 0)

Text = f1.ToString()

输出1位

:因为

float

本来就是单精度的!

输出1位正常!不过通常带有

12.2f

1.float

它最多只能保存

7位有效数字!2.两个float相乘结果为float

3.乘数中只要有一个数为double,结果也有double

4.实数在计算机是以浮点数的形式表示的。所以要看它的实际二进制的编码方式