1. Главная
  2. Библиотека
  3. Программирование
  4. Выполнить ввод с клавиатуры числа типа long. Выделить б...
Разбор задачи

Выполнить ввод с клавиатуры числа типа long. Выделить байты этого числа использованием побитовых операций. Получить две динамические переменные типа short: первая составлена из младшего и старшего байтов введенного числа, вторая – из оставшихся. Вывести

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Выполнить ввод с клавиатуры числа типа long. Выделить байты этого числа использованием побитовых операций. Получить две динамические переменные типа short: первая составлена из младшего и старшего байтов введенного числа, вторая – из оставшихся. Вывести

Условие:

Выполнить ввод с клавиатуры числа типа long. Выделить байты этого числа использованием побитовых операций. Получить две динамические переменные типа short: первая составлена из младшего и старшего байтов введенного числа, вторая – из оставшихся. Вывести на экран двоичное представление полученных динамических переменных. Если N-й бит второго числа равен 1, то в первом числе поменять местами старший и младший байты с использованием указателя. Вывести на экран результирующие значения и адреса их размещения в памяти.

Решение:

  1. Сначала вводится число типа long с клавиатуры. Предполагается, что число занимает 4 байта. Для удобства будем считать, что байты числа нумеруются так:
    • байт 0 – младший байт
    • байт 1 – второй (от младшего) байт
    • байт 2 – третий байт
    • байт 3 – старший байт

  2. С использованием побитовых операций выделяем каждый байт. Для этого применяем битовую операцию И (&) с 0xFF и битовый сдвиг:
    • byte0 = num & 0xFF
    • byte1 = (num >> 8) & 0xFF
    • byte2 = (num >> 16) & 0xFF
    •...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какая побитовая операция используется для извлечения отдельного байта из многобайтового числа, например, из `long`?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет