Есть 4 байта в них записана информация как их прочитать сразу? так я считываю 2 байта и вывожу в 10-ричтной системе . Надо тоже самое только для 4 байт . И пояснить принцип. Или рассказать где можно об этом почитать !
char ch;
inp.get(ch);
unsigned short w = ch & 0xFF;
inp.get(ch);
w |= (ch & 0xFF) << 8;
cout << dec << (int)w << endl;

21 Авг 2019 в 06:33
162 +1
0
Ответы
1

Для чтения 4 байт в переменную типа unsigned int можно использовать следующий код:

unsigned int dw = 0;
char ch;
inp.get(ch);
dw = ch & 0xFF;
inp.get(ch);
dw |= (ch & 0xFF) << 8;
inp.get(ch);
dw |= (ch & 0xFF) << 16;
inp.get(ch);
dw |= (ch & 0xFF) << 24;
cout << dec << dw << endl;

Эта последовательность берет по одному байту из потока ввода и объединяет их в переменную dw типа unsigned int. Важно здесь использовать побитовое И(&) с маской 0xFF для правильного чтения данных и устранения знакового расширения.

Если вам интересно более подробная информация о работе с битами в C++, вы можете почитать о битовых операторах (&, |, <<, >>) и масках в документации или учебниках по языку программирования С++.

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 888 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир