有没有办法将 32 位整数转换为浮点数?
Is there way to convert float from 32bit integer?
使用 c#
我需要读取的浮点值
= 24.500000
当我尝试阅读时,我得到了这个结果
= 1103364096
我应该做什么转换才能获得真正的价值?我需要这方面的帮助。
我失败的尝试:
int data_1 = 1103364096;
UInt16 value = (UInt16)x;
ushort data_2= (ushort)(1103364096 & ((1 << 16) - 1));
int r = 1103364096;
short trimmed = unchecked((short)r);
这些都不行!
使用 Convert.ToFloat(x)
将(从任何东西)转换为浮点数。
使用 Convert.ToInt32(x)
将(从任何东西)转换为 Int32。
根据 Jeremy 的建议,您需要使用 BitConverter
。
我们将首先获得整数 i
的字节表示,然后将这些字节解释为 float
:
int i = 1103364096;
byte[] b = BitConverter.GetBytes(i);
float f = BitConverter.ToSingle(b, 0);
Console.WriteLine(f); // outputs 24.5
使用 c#
我需要读取的浮点值
= 24.500000
当我尝试阅读时,我得到了这个结果
= 1103364096
我应该做什么转换才能获得真正的价值?我需要这方面的帮助。
我失败的尝试:
int data_1 = 1103364096;
UInt16 value = (UInt16)x;
ushort data_2= (ushort)(1103364096 & ((1 << 16) - 1));
int r = 1103364096;
short trimmed = unchecked((short)r);
这些都不行!
使用 Convert.ToFloat(x)
将(从任何东西)转换为浮点数。
使用 Convert.ToInt32(x)
将(从任何东西)转换为 Int32。
根据 Jeremy 的建议,您需要使用 BitConverter
。
我们将首先获得整数 i
的字节表示,然后将这些字节解释为 float
:
int i = 1103364096;
byte[] b = BitConverter.GetBytes(i);
float f = BitConverter.ToSingle(b, 0);
Console.WriteLine(f); // outputs 24.5