int n = BitConverter.ToInt32(myByteArray, 0);
string s1 = n.ToString() + "." + myByteArray[4].ToString();
double t = double.Parse(s1);
#5
您好
您看下我是哪里写错了吗
#6
语法错!不要想当然
#7
万一是前4个字节按照32位整型的原始字节形式表示呢?
#8
那就得问LZ这里边到底是用的16位还是32位了。。。。
#9
.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
#13
.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;
.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
#13
.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;