如果我有一个名为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);