方法一: 通过移位进行转换
byte[] byteTemp = new byte[4] { 0x00, 0x01, 0xe2, 0x40 };//对应数字 123456
float d = 0;
bool IsLittleEndian = true;//根据存储情况选择
if (IsLittleEndian)
{
d = byteTemp[0] << 0 | byteTemp[1] << 8 | byteTemp[2] << 16 | byteTemp[3] << 24;
}
else
{
d = byteTemp[0] << 24 | byteTemp[1] << 16 | byteTemp[2] << 8 | byteTemp[3] << 0;
}
// d == 123456
方法二: 使用指针强制转换
byte[] byteTemp = new byte[4] { 0x00, 0x01, 0xe2, 0x40 };//对应数字 123456
float testv = *((float*)byteTemp);
// testv = 123456
从这一点可以看出C语言的强大和高效… 类型转换, 根本不需要编译器来确定, 我说你是啥就是啥… 当然C#也能有指针.