【问题标题】:C++: Bitshifting an unsigned shortC ++:对无符号短进行位移
【发布时间】: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。我做错了什么?

【问题讨论】:

    标签: c++ unsigned short


    【解决方案1】:
    c <<= 8;
    

    不是

    c << 8;
    

    第二种情况不会修改 c 的值。我本来希望你的编译器会警告你。

    【讨论】:

    • 没问题,我也犯了同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多