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

问题描述 投票:0回答:1

从昨天开始我一直在努力工作,我似乎无法完全理解这一点。我想要完成的是,我需要将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;
c# byte bit-shift nibble
1个回答
1
投票

假设value10001 = 1value20110 = 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.
}
© www.soinside.com 2019 - 2024. All rights reserved.