Я пытаюсь сохранить 2 неподписанных символа в один неподписанный шорт.
Итак, что я делаю, это сохраняю 1-й символ, затем сдвигаю бит ИЛИ со вторым символом.
Код:
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&число = 8&место = 8&Оператор = Shift + Left.
Но вместо этого я получаю 8. Что я делаю не так?
c <<= 8;
не
c << 8;
Во втором случае значение c не изменяется. Я бы ожидал, что ваш компилятор предупредит вас об этом.
Других решений пока нет …