Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Двоичные преобразования

Time limit:1 sec.
Memory limit: 262144 KByte

Даны два целых числа a и b, где 1 ≤ b ≤ a ≤ 109. Необходимо вычислить результат s, выполнив последовательно следующие действия:

  1. переведите числа a и b в двоичную систему счисления
  2. допишите слева к числам a и b ведущие нули так, чтобы в них стало по 32 двоичных цифры
  3. в числе b замените все ноли на единицы, а единицы – на ноли
  4. вычислите s как следующую сумму: s = a + b + 1
  5. если в числе s оказалось больше 32 двоичных цифр, то оставьте только 32 младшие цифры, а лишние цифры слева сотрите
  6. переведите s в десятичную систему счисления и выведите в ответ

Рассмотрим пример. Пусть a = 5, b = 3.

  1. В двоичной системе a = 101, b = 11.
  2. Допишем нули: a = 00000000000000000000000000000101, b = 00000000000000000000000000000011
  3. Инвертируем все цифры во втором числе: b = 11111111111111111111111111111100
  4. Вычислим s = a + b + 1 = 100000000000000000000000000000010.
  5. В числе s оказалось 33 цифры, поэтому отбросим первую: s = 00000000000000000000000000000010.
  6. Переводим в десятичную систему: s = 2.

Пример

Входные данные
5
3
Выходные данные
2
© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.