从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);