c-如何提取二进制数的最高有效位



如果我有一个名为n的16位数字和另一个名名为n2的16位编号,并且我想将n2的前8位设置为n。只有n的前8个位应该与n2相同,其余8个不应该改变。遇到这种情况我该怎么办?我试着把数字移位8,但我不知道如何提取n的MSB并将其设置为n2的MSB,然后移位。

有人能帮帮我吗?

谢谢!

您可以将n2的前8位和n:的前8个位归零

n2 &= 0xFF00;
n2 |= (n & 0x00FF);

编辑Eric Postpischil的注释,下面的代码将把n2的最高有效字节更改为n的最有效字节。

n2 &= 0x00FF;
n2 |= (n & 0xFF00);

相关内容

  • 没有找到相关文章

最新更新