0

从昨天开始我一直在做这件事,我似乎无法完全理解位移。我想要完成的是,我需要将 2 个数字合并为 1 个字节。第一个数字在前四位,第二个在后四位。

0001 = 1

0110 = 6

然后使它们成为二进制“00010110”中的 1 个字节。

之后,我还想分别提取 1 和 6。我怎么做?

我所能做的就是从这里的另一个问题中提取:

int b = Convert.ToByte(value); 
byte[] b1 = new byte[2];
b1[0] = b >> 4;
b1[1] = b & 0x0F;
4

1 回答 1

1

假设value1is0001 = 1value2is 0110 = 6,您可以将这两个值与一个OR操作合并|

byte result = 0;
try {
  byte b1 = Convert.ToByte(value1); 
  byte b2 = Convert.ToByte(value2); 
  result = (b1 << 4) | (b2 & 0x0F);
} catch (OverflowException) {
  ... // Handle 'Int too big' situation.
}
于 2019-03-14T00:45:46.573 回答