将2个整数合并为1个字节

时间:2019-03-14 00:37:31

标签: c# byte bit-shift nibble

从昨天开始,我一直在从事这项工作,但似乎无法完全理解这种转变。我想要完成的是,我需要将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;

1 个答案:

答案 0 :(得分:1)

假设value10001 = 1,而value20110 = 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.
}