Информатика вступительные, срочно!

Петя посылает Ване числовые коды от 0 до 255. Однако, эти коды особо важны — их могут перехватить, поэтому ребята договорились их шифровать. Алгоритм шифрования состоит из пяти шагов и выглядит следующим образом: Записать пересылаемое число в виде восьмиразрядного битового кода (от 00000000 до 11111111) . Определить количество нулей в записи битового кода a и количество единиц в записи битового кода b. Левые a битов сдвинуть циклически влево на b разрядов, а правые b битов сдвинуть циклически вправо на a разрядов. Выполнить поразрядную инверсию. Перевести число в десятичную систему счисления. То есть число 129 будет преобразовано сначала в 10000001, затем разобьется на части 100000 01, которые преобразуются в 000010 01, после инверсии 11110110, что равно 246. Определите, какое число получит Ваня, если Петя закодировал число 246
10 месяцев назад от Иван Надеющийся

1 ответ

0 голосов
Из условия задачи видно, что 246 = 11110110.

В двоичной записи два нуля, то есть a = 2.
И шесть единиц, то есть b = 6.

Делим число на две части: a битов слева и b битов справа.
11110110 = 11 110110

Циклический сдвиг левых битов ничего не меняет, так как все левые биты одинаковые.
Правые биты сдвигаем вправо на a = 2 разряда
11 110110 = 11 101101

Делаем поразрядную инверсию: все 0 становятся 1, а все 1 становятся 0.
11 101101 = 00 010010

Переводим число в десятичную систему:
00010010 = 128 * 0 + 64 * 0 + 32 * 0 + 16 * 1 + 8 * 0 + 4 * 0 + 2 * 1 + 1 * 0 = 16 + 2 = 18
10 месяцев назад от Елизавета Тимощенко

Связанные вопросы