110,537
社区成员
发帖
与我相关
我的任务
分享
//比如这样是两位数字的数组
ushort a = 0x1234;
byte[] by = new byte[3];
by[0] = (byte)((0xff00 & a)>>8);
by[1] = (byte)((0xff & a));
for (int i = 0; i < 3; i++)
{
Console.WriteLine(by[i]);
}
//输出等于:18 52 这是正确的
//比如这样是4位数字的数组
long a = 0x921225;
byte[] by = new byte[4];
by[0] = (byte)((0xff00 & a)>>8);
by[1] = (byte)((0xff & a));
//by[2] = (byte)(a); //不知道啥写????
//by[3] = (byte)(a); //0..>_<..0
for (int i = 0; i < by.Length; i++)
{
Console.WriteLine(by[i]);
}
a=0x1234 //二进制为 0001001000110100
0xff00 //二进制为 1111111100000000
0xff00 & a 与运算 //结果 0001001000000000
然后(0xff00 & a)>>8 右移8个位 //结果为 0000000000010010
转换为int(十进制),1*2^4+0*2^3+0*2^2+1*2^1+0*2^0=18