a~d分别代表一个数的32位二进制的每八位分段。举个例子: byte a =1; 对应的二进制值为—>00000001
byte b =64; 对应的二进制值为—>01000000
byte c = 128; 对应的二进制值为—>10000000
byte d = 16; 对应的二进制值为—>00010000那么,我想要的那个数为—>00000001 01000000 10000000 00010000
转化成整数为—>21004304代码应该怎样写呢? 怎样才能实现a b c d 这四个数的二进制拼接得到整数呢?(代码不会 写 )希望高手指点,万分感激!!!!
byte b =64; 对应的二进制值为—>01000000
byte c = 128; 对应的二进制值为—>10000000
byte d = 16; 对应的二进制值为—>00010000那么,我想要的那个数为—>00000001 01000000 10000000 00010000
转化成整数为—>21004304代码应该怎样写呢? 怎样才能实现a b c d 这四个数的二进制拼接得到整数呢?(代码不会 写 )希望高手指点,万分感激!!!!
楼主应该把逻辑规律说一下
UInt32 result = Convert.ToUInt32((val[0] << 24) + (val[1] << 16) + (val[2] << 8) + val[3]);
把val转成无符号整数
int[] bytes = new int[] {1,64,128,16 };
int result=0;
for (int i = bytes.Length-1; i >-1 ; i--)
{ result += bytes[i] << ((bytes.Length-1-i) * 8);
}
Console.WriteLine("result:"+result);
-----------------------
上面的概念你好像不清楚,所以我贴给你看.http://topic.csdn.net/u/20100511/14/db02b2f3-fe78-48f0-b09e-febc8f29d963.html
这个帖子原理和代码都有我不赘述了.
byte[] abc = new byte[4];
abc[0] = 1;
abc[1] = 64;
abc[2] = 128;
abc[3] = 16;
Int32 result = Convert.ToInt32((abc[0] << 24) + (abc[1] << 16) + (abc[2] << 8) + abc[3]);