2

我得到了一个整数。例如 5630(十进制)。二进制数是:

00000000 00000000 00010101 11111110

我想获得十进制的第二个字节(00010101)。我如何得到它?

4

3 回答 3

5

您可以使用BitConverter.GetBytes()

int intValue = 5630;
byte[] intBytes = BitConverter.GetBytes(intValue);
byte result = intBytes[1];  // second least-significant byte

或者只是向右移位 8 位并转换为一个字节(截断左边的位):

((byte)(intValue >> 8))
于 2013-11-06T19:43:46.833 回答
3

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;
于 2013-11-06T19:44:19.803 回答
0

向下移位并转换为byte

int num = 5630;
byte second_byte = (byte)(num >> 8);
于 2013-11-06T19:45:11.193 回答