将 2 个整数合并为 1 个字节
Merge 2 integers into 1 byte
我从昨天开始就一直在做这方面的工作,但我似乎无法完全理解位移。我想要完成的是,我需要将 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;
假设 value1
是 0001 = 1
并且 value2
是 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.
}
我从昨天开始就一直在做这方面的工作,但我似乎无法完全理解位移。我想要完成的是,我需要将 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;
假设 value1
是 0001 = 1
并且 value2
是 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.
}