HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

Volumes > Tasks for 2 course of C++ > problem:


10_02_08

Volume problems

• 06_02
• 10_02_01
• 10_02_02
• 10_02_03
• 10_02_04
• 10_02_05
• 10_02_06
• 10_02_07 - битовые операции (за...
• 10_02_08
• 10_02_12
• 11_01_01
• 11_01_02
• 11_02_01
• 11_02_02
• 11_02_03
• 11_02_04

Feedback

If you notice incorrect translations in Contester, please let author know.

Time limit 2000/4000/4000/4000 ms. Memory limit 65000/65000/65000/65000 Kb.

Задание 10_02_08 - битовые операции (8 задание)


Поменять местами два бита с заданными номерами в двоичном представлении целого положительного числа. Воспользуйтесь предыдущей задачей (10_02_07). Например, если введены 5, 0 и 1, ответом будет 6.
Совет: все переменные делайте типом unsigned int (иначе в логически правильной программе могут быть ошибки из-за конвертации).
При решении задачи нельзя использовать операции % и /. Допустимо использовать только операции &, |, ^, ~, <<, >> и циклы.

Входные данные:

Три целых неотрицательных числа: исходное число n и номера меняемых местами битов.

Выходные данные:
Целое неотрицательное число: результат обмена битов значениями.

Примеры:

Входные данные: 5 0 1
Выходные данные: 6

Для отправки решений необходимо выполнить вход.

www.contester.ru