Я читаю байты из файла. В этом примере я прочитал два байта (представлены в гекса)объединение двух байтов
94
и 73
. Как я могу поместить эти два байта вместе, чтобы они выглядели как
9470
?
Я могу использовать 73 >> 4
, чтобы сделать 70
из 73
Но как я могу «сместить» их вместе?
Я попытался с помощью (94 << 8) & (73 >> 4)
, но он всегда возвращает 0.
я нашел ничего о работе с байтами, как это. (Основное чтения одного и половина байта в данном примере), чтение 2 байта сразу
примера кода
uint64_t bytes;
output.read((char *)&bytes, 2); // read 2 bytes
uint64_t tmp = (cutIt << (64 - 8)) >> (64 - 8) ;
uint64_t tmp_two = ((cutIt >> 8) & 11110000) >> 4;
uint64_t tmp_three = (tmp << 8) & tmp_two ;
вы можете показать код .... могут быть разные способы. – tod
Возможно, вы хотели сделать '(94 << 8) | 73', что означает сдвиг первого байта на 8 бит и сделать BITWISE OR с 73 (второй байт) – johngull
, этот результат 5e49, не нужен результат – user3706129