# Задачи по побитовым операциям на Java > **Условие:** без использования операторов выбора (`if`, `switch`, `?:`), циклов (`for`, `while`, `do`) и объявления новых функций. Только `main`, побитовые операции, арифметика и `System.out.println`. --- ## Задача 1. Умножить число на 4 без умножения **Условие:** Дано целое число `n`. Получить `n * 4`, используя только побитовые операции. |**Ввод:** |**Вывод:**| |--|--| | 5 | 20 | **Решение:** ```java public class Task1 { public static void main(String[] args) { int n = 5; int result = n << 2; // сдвиг влево на 2 = умножение на 4 System.out.println(result); } } ``` --- ## Задача 2. Разделить число на 2 без деления **Условие:** Дано целое число `n`. Получить `n / 2`, используя только побитовые операции. |**Ввод:** |**Вывод:**| |--|--| | 20 | 10 | **Решение:** ```java public class Task2 { public static void main(String[] args) { int n = 20; int result = n >> 1; // сдвиг вправо на 1 = деление на 2 System.out.println(result); } } ``` --- ## Задача 3. Проверить, чётное ли число **Условие:** Дано целое число `n`. Вывести `1`, если оно чётное, и `0`, если нечётное. |**Ввод:** |**Вывод:**| |--|--| | 7 | 0 | **Решение:** ```java public class Task3 { public static void main(String[] args) { int n = 7; int result = (n & 1) ^ 1; // если младший бит 1 → 0, иначе → 1 System.out.println(result); } } ``` --- ## Задача 4. Обнулить младший бит **Условие:** Дано целое число `n`. Обнулить его самый младший установленный бит. |**Ввод:** |**Вывод:**| |--|--| | 12 | 8 | **Решение:** ```java public class Task4 { public static void main(String[] args) { int n = 12; int result = n & (n - 1); // трюк: убирает младший установленный бит System.out.println(result); } } ``` --- ## Задача 5. Установить k-й бит в 1 **Условие:** Даны число `n` и позиция `k` (нумерация с 0). Установить `k`-й бит в 1. |**Ввод:** |**Вывод:**| |--|--| | 8 2 | 12 | **Решение:** ```java public class Task6 { public static void main(String[] args) { int n = 8; // 1000 int k = 2; int result = n | (1 << k); // 1000 | 0100 = 1100 = 12 System.out.println(result); } } ``` --- ## Задача 6. Инвертировать k-й бит **Условие:** Даны число `n` и позиция `k`. Инвертировать `k`-й бит. |**Ввод:** |**Вывод:**| |--|--| | 10 1 | 8 | **Решение:** ```java public class Task7 { public static void main(String[] args) { int n = 10; // 1010 int k = 1; int result = n ^ (1 << k); // 1010 ^ 0010 = 1000 = 8 System.out.println(result); } } ``` --- ## Задача 7. Умножить число на 5 без умножения **Условие:** Дано целое число `n`. Получить `n * 5`, используя только сдвиги и сложение. |**Ввод:** |**Вывод:**| |--|--| | 7 | 35 | **Решение:** ```java public class Task10 { public static void main(String[] args) { int n = 7; int result = (n << 2) + n; // 4n + n = 5n System.out.println(result); } } ``` --- ## Задача 8. Умножить число на 3 без умножения **Условие:** Дано целое число `n`. Получить `n * 3`, используя только сдвиги и сложение. |**Ввод:** |**Вывод:**| |--|--| | 7 | 21 | **Решение:** ```java public class Task10 { public static void main(String[] args) { int n = 7; int result = (n << 1) + n; // 2n + n = 3n System.out.println(result); } } ```