int n = BitConverter.ToInt32(myByteArray, 0); string s1 = n.ToString() + "." + myByteArray[4].ToString(); double t = double.Parse(s1);
.net 的 Int 32 字节表示是从低到高的,但是你的表示是从高到低,所以需要转一下方向。可以这样转换值byte[] myByteArray = new byte[] { 0x00, 0x01, 0x02, 0x8B, 0xB9 }; var myByteArray1 = new byte[4]; Array.Copy(myByteArray, myByteArray1, 4); Array.Reverse(myByteArray1); var x = BitConverter.ToInt32(myByteArray1, 0); var y = (int)myByteArray[4]; var result = x + y / 256.0;
您能帮我看下吗 byte[] myByteArray = new byte[] { 0x00, 0x00, 0x00, 0x01, 0x4F }; int d = 0; int c = 4; for (int i = 0; i < c; i++) { d |= myByteArray[i] << ((c - i - 1) * 8); } MessageBox.Show(d + "." + myByteArray[c]);//结果 1.79 实际数值为1.31
string s1 = n.ToString() + "." + myByteArray[4].ToString();
double t = double.Parse(s1);
var myByteArray1 = new byte[4];
Array.Copy(myByteArray, myByteArray1, 4);
Array.Reverse(myByteArray1);
var x = BitConverter.ToInt32(myByteArray1, 0);
var y = (int)myByteArray[4];
var result = x + y / 256.0;
您能帮我看下吗 byte[] myByteArray = new byte[] { 0x00, 0x00, 0x00, 0x01, 0x4F };
int d = 0;
int c = 4;
for (int i = 0; i < c; i++)
{
d |= myByteArray[i] << ((c - i - 1) * 8);
}
MessageBox.Show(d + "." + myByteArray[c]);//结果 1.79 实际数值为1.31