ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Сборники > Задания для 2-го семестра Си++ > задача:


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

Задачи сборника

• 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 - длинная арифметика (...

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.

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


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

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

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

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

Примеры:

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

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

www.contester.ru