从int获取单个字节
我有一个int号码。 例如5630(十进制)。 二进制数是:
00000000 00000000 00010101 11111110
我想得到十进制的第二个字节(00010101)。 我怎么得到它?
您可以使用BitConverter.GetBytes()
:
int intValue = 5630; byte[] intBytes = BitConverter.GetBytes(intValue); byte result = intBytes[1]; // second least-significant byte
或者只是向右移位8位并转换为一个字节(截断左边的位):
((byte)(intValue >> 8))
做一点与00000000 00000000 11111111 00000000
(hex, 0xFF00
),右移8位。
var x = 5630; var secondByte = (x & 0xFF00) >> 8;
或者,首先进行位移,并通过&-ing with value去除高阶字节
00000000 00000000 00000000 11111111
十进制255,或(hex0xFF
)
var x = 5630; var secondByte = (x >> 8) & 0xFF;
Bitshift down并转换为byte
int num = 5630; byte second_byte = (byte)(num >> 8);