我有一个int号码。例如5630(十进制)。二进制数是:
00000000 00000000 00010101 11111110
我想得到十进制的第二个字节(00010101)。 我怎么得到它?
答案 0 :(得分:4)
您可以使用BitConverter.GetBytes()
:
int intValue = 5630;
byte[] intBytes = BitConverter.GetBytes(intValue);
byte result = intBytes[1]; // second least-significant byte
或者只是向右移位8位并转换为字节(截断左位):
((byte)(intValue >> 8))
答案 1 :(得分:3)
按位{和{1}}进行
(十六进制,00000000 00000000 11111111 00000000
),右移8位。
0xFF00
或者,首先进行位移,并通过& -ing除去高位字节
var x = 5630;
var secondByte = (x & 0xFF00) >> 8;
十进制255,或(十六进制00000000 00000000 00000000 11111111
)
0xFF
答案 2 :(得分:0)
Bitshift down并施放到byte
int num = 5630;
byte second_byte = (byte)(num >> 8);