0 c++
我如何编写一段代码来表示短路的第一个字节,而不是第二个部分?
Eaxmple:我有一个名为inputShort的short,我希望这个short能够删除第二个字节中的所有值.所以我想和逻辑运算符一起使用它.
好吧,我试过了,但我失败了.有人能给我一个例子如何做到这一点?
我的目标是保持短线的左侧部分,并清空短线的右侧部分.
当你说"第二个字节"时,我不知道你的意思是最重要还是最不重要,但这里有一个可能有帮助的例子.
short second = 0xFF00;
short first = 0x00FF;
short number = 0x1234;
short tmp;
tmp = number & first; //tmp is set to 0x1234&0x00FF -> 0x0034
tmp = number & second; //tmp is set to 0x1234&0xFF00 -> 0x1200
Run Code Online (Sandbox Code Playgroud)
"第一"和"第二"是模棱两可的.他们倾向于提到存储,所以endian-ness发挥作用,我认为你不是那个意思.短路中的字节数也是实现定义的.
我假设您要将最低有效("右")位清零,并保留所有其他位:
#include <limits>
...
inputShort & ~std::numeric_limits<unsigned char>::max();
Run Code Online (Sandbox Code Playgroud)
或者,如果你感到勇敢,并且你想假设8位字节:
inputShort & ~0xFF;
Run Code Online (Sandbox Code Playgroud)
(假设8位字节不需要太多勇气).
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |