繁体   English   中英

C ++:对无符号的short进行位移位

[英]C++: Bitshifting an unsigned short

我试图将2个未签名的char保存为一个未签名的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 <<= 8;

c << 8;

第二种情况不会修改c的值。 我本来希望您的编译器对此发出警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM