Во всех задачах ввод-вывод может быть как стандартным, так и файловым
(input.txt, output.txt).
Во всех начальных упражнениях (если не оговорено иное) нельзя использовать
арифметические операторы сложения, умножения, вычитания,
деления, взятия остатка.
Вместо них используем побитовые операторы &, |,
~, ^, <<, >>.
Дано число \(k\), выведите число \(2^k\), то есть число, у которого \(k\)-й бит равен 1, а остальные — нули.
| Ввод | Вывод |
|---|---|
8 |
256 |
Даны два неравных целых неотрицательных числа: \(k\) и \(n\). Вычислите \(2^k+2^n\).
| Ввод | Вывод |
|---|---|
0 1 |
3 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Обнулите у числа \(a\) его последние \(k\) бит и выведите результат.
| Ввод | Вывод |
|---|---|
3 1 |
2 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Выведите число, которое получается из числа \(a\) установкой значения \(k\)-го бита равным 1.
| Ввод | Вывод |
|---|---|
12 1 |
14 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Выведите значение \(k\)-го бита числа \(a\), то есть 0 или 1.
| Ввод | Вывод |
|---|---|
179 0 |
1 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Выведите число, которое получается из числа \(a\) инвертированием \(k\)-го бита.
| Ввод | Вывод |
|---|---|
15 2 |
11 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Выведите число, которое получается из числа \(a\) установкой значения \(k\)-го бита равным 0.
| Ввод | Вывод |
|---|---|
14 1 |
12 |
Дано целое число \(a\) и целое неотрицательное число \(k\). Выведите число, которое получается из числа \(a\) удалением \(k\)-го бита. Старшие биты, чьи номера больше чем \(k\), сдвигаются вправо.
В решении можно использовать операции +1 и -1.
| Ввод | Вывод |
|---|---|
21 2 |
9 |
Сделайте то, что вы так любите — изучите таблицу ASCII и как связаны коды заглавных и строчных букв. Используя битовые операции с ASCII-кодами символа (и не используя арифметические операции), поменяйте регистр этого символа.
Программа получает на вход строку, состоящую только из заглавных и строчных латинских букв, и должна вывести преобразованную строку.
| Ввод | Вывод |
|---|---|
Hello |
hELLO |
Дано целое число \(a\) и натуральное число \(k\). Выведите число, которое состоит только из \(k\) последних бит числа \(a\) (то есть обнулите все биты числа \(a\), кроме последних \(k\)).
| Ввод | Вывод |
|---|---|
126 3 |
6 |
Даны два возможно равных целых неотрицательных числа \(k\) и \(n\). Вычислите \(2^k+2^n\).
| Ввод | Вывод |
|---|---|
0 1 |
3 |
1 1 |
4 |
Даны числа \(a\) и \(b\). Используя только битовые операции и операции сложения и вычитания вычислите число \(x = (18a + [\frac{b}{16}]) \bmod 32\). Выведите результат на экран.
| Ввод | Вывод |
|---|---|
1 2 |
18 |
2 16 |
5 |