Двоичные преобразования
Time limit: | 1 sec. |
Memory limit: | 262144 KByte |
Даны два целых числа a и b, где 1 ≤ b ≤ a ≤ 109. Необходимо вычислить результат s, выполнив последовательно следующие действия: - переведите числа a и b в двоичную систему счисления
- допишите слева к числам a и b ведущие нули так, чтобы в них стало по 32 двоичных цифры
- в числе b замените все ноли на единицы, а единицы – на ноли
- вычислите s как следующую сумму: s = a + b + 1
- если в числе s оказалось больше 32 двоичных цифр, то оставьте только 32 младшие цифры, а лишние цифры слева сотрите
- переведите s в десятичную систему счисления и выведите в ответ
Рассмотрим пример. Пусть a = 5, b = 3. - В двоичной системе a = 101, b = 11.
- Допишем нули: a = 00000000000000000000000000000101, b = 00000000000000000000000000000011
- Инвертируем все цифры во втором числе: b = 11111111111111111111111111111100
- Вычислим s = a + b + 1 = 100000000000000000000000000000010.
- В числе s оказалось 33 цифры, поэтому отбросим первую: s = 00000000000000000000000000000010.
- Переводим в десятичную систему: s = 2.
|