我得到了一个整数。例如 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
(十六进制,0xFF00
)按位和右移 8 位。
var x = 5630;
var secondByte = (x & 0xFF00) >> 8;
或者,首先移位并通过 &-ing 去除高阶字节,值为
00000000 00000000 00000000 11111111
十进制 255,或 (hex 0xFF
)
var x = 5630;
var secondByte = (x >> 8) & 0xFF;
向下移位并转换为byte
int num = 5630;
byte second_byte = (byte)(num >> 8);