-1

2 つの unsigned char を 1 つの unsigned short に保存しようとしています。だから私は最初の文字を保存し、ビットシフトしてから2番目の文字でORします。

コード:

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 を取得します。何が間違っていますか?

4

1 に答える 1