从昨天开始,我一直在从事这项工作,但似乎无法完全理解这种转变。我想要完成的是,我需要将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;
答案 0 :(得分:1)
假设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.
}