Контест Junior Типы и неопределённое поведение обновлено
Порядок байтов: перевернуть uint32 и посчитать единицы
Условие
По сети пришли 32-битные беззнаковые числа в порядке байтов big-endian, а прочитали их как little-endian. Для каждого числа выведите значение с обратным порядком байтов и число единичных битов в нём.
Ввод: в первой строке q (1 ≤ q ≤ 2000), далее q чисел (0 ≤ x < 2³²), по одному в строке.
Вывод: для каждого числа строка из двух значений: перевёрнутое число и количество единичных битов.
Пример 1
Ввод:
3
1
305419896
4294967295
Вывод:
16777216 1
2018915346 13
4294967295 32
Пример 2
Ввод:
2
0
256
Вывод:
0 0
65536 1
Как подойти
Подсказки: 1
- Посмотрите на заголовок <bit>: там есть подсчёт единичных битов.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Ещё по теме «Типы и неопределённое поведение»
- Середина двух int64 без переполнения
- std::bit_cast
- Что C++20 изменил для знаковых целых
- Порядок вычисления аргументов функции
- Объясни, что такое неопределённое поведение
- Продвижение unsigned char
- Размер long на Windows и Linux
- Сопоставьте пример и вид поведения