На этом шаге мы перечислим основные операции, предназначенные для работы с битами.
Ранее вы видели, что числа имеют двоичное представление. Получить двоичное представление числа можно в любой момент. Например, получить двоичное представление целого числа 42 можно так:
Integer.toBinaryString(42) 101010
В Kotlin имеются функции для выполнения операций с двоичными представлениями, которые называются поразрядными операциями, включая уже, возможно, знакомые вам операции из других языков, таких как Java. В таблице 1 перечислены часто применяемые двоичные операции, доступные в Kotlin.
Функция | Описание | Пример |
---|---|---|
Integer.toBinaryString() | Возвращает двоичное представление целого числа | Integer.toBinaryString(42) // 101010 |
shl(bitcount) | Сдвиг влево на указанное число разрядов | 42.shl(2) // 10101000 |
shr(bitcount) | Сдвиг вправо на указанное число разрядов | 42.shr(2) // 1010 |
inv() | Инверсия битов | 42.inv() // 11111111111111111111111111010101 |
xor(number) | Выполняет логическую операцию "исключающее ИЛИ" с битами и для каждой позиции возвращает 1, если бит в этой позиции в одном числе равен 1, а в другом 0 | 42.xor(33) // 001011 |
and(number) | Выполняет логическую операцию "И" с битами и для каждой позиции возвращает 1, только если оба числа в этой позиции имеют бит, равный 1 | 42.and(10) // 1010 |
На следующем шаге мы приведем несколько заданий для самостоятельного решения.