C ++:Bitshifting未签名的短片

时间:2013-04-25 14:20:09

标签: c++ unsigned short

我正在尝试将2个unsigned char保存到一个unsigned short中。 所以我所做的就是保存第一个字符,然后将它移位,然后用第二个字符进行OR。

代码:

unsigned char a = 8;
unsigned char b = 2;
unsigned short c = a;
c << 8;
c |= b;

但我首先遇到了bithift的问题。 运行此代码:

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 个答案:

答案 0 :(得分:6)

c <<= 8;

c << 8;

第二种情况不会修改c的值。我原以为你的编译器会警告你。