如何用另一个字节的LSB替换一个字节的LSB

时间:2011-10-03 14:43:00

标签: c#

如何用c#中的另一个字节的LSB替换字节的LSB。

像这样的东西

byte1 - 0 1 1 1 1 1 1 1

byte2 - 0 0 1 1 1 0 0 0

现在我希望字节1的lsb,即“1”被字节2的lsb替换,即“0”。 所以我的最后一个字节应该是这样的:

byte3 - 0 1 1 1 1 1 1 0

1 个答案:

答案 0 :(得分:6)

听起来像你想要的东西:

byte x = ...;
byte y = ...;

// Only bits 1-7 of x, and only bit 0 of y (counting bit 0 = LSB)
byte z = (byte) ((x & 0xfe) | (y & 1));

强制转换是必要的,因为所有运算符仅定义为int和更大,因此所有内容都会被提升为int