我正在尝试将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.我做错了什么?
答案 0 :(得分:6)
c <<= 8;
不
c << 8;
第二种情况不会修改c的值。我原以为你的编译器会警告你。