C ++:对无符号短进行位移
Posted
技术标签:
【中文标题】C ++:对无符号短进行位移【英文标题】:C++: Bitshifting an unsigned short 【发布时间】:2013-04-25 14:20:09 【问题描述】:我正在尝试将 2 个 unsigned char 保存到一个 unsigned short 中。 所以我要做的是保存第一个字符,然后将其移位或使用第二个字符。
代码:
unsigned char a = 8;
unsigned char b = 2;
unsigned short c = a;
c << 8;
c |= b;
但我首先遇到了位移问题。 运行此代码:
unsigned char a = 8;
unsigned short c = a;
c << 8;
cout << c;
我希望得到 2048。 我什至在这里检查过:http://www.miniwebtool.com/bitwise-calculator/bit-shift/?data_type=10&number=8&place=8&operator=Shift+Left。 但是我得到了 8。我做错了什么?
【问题讨论】:
【参考方案1】:c <<= 8;
不是
c << 8;
第二种情况不会修改 c 的值。我本来希望你的编译器会警告你。
【讨论】:
没问题,我也犯了同样的错误。以上是关于C ++:对无符号短进行位移的主要内容,如果未能解决你的问题,请参考以下文章