This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ru:software:homelab:library:bit [2013/08/12 10:41] – создано eduardtlmk | ru:software:homelab:library:bit [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Битовые операции ====== | ====== Битовые операции ====== | ||
| - | Библиотека битовых операций – это набор общепринятых макрофункций для совершения | + | Библиотека битовых операций – это набор общепринятых макрофункций для совершения |
| - | типичных битовых действий. Эти функции могут быть использованы в любых регистрах и | + | Битовым индексом считается порядковый номер бита, начиная с наименее важного |
| - | типах данных, | + | ===== Функции ===== |
| - | + | ||
| - | 8-, 16- и 32-битным переменным и регистрам. Эти битовые операции используются всеми | + | |
| - | + | ||
| - | другими частями библиотеки, | + | |
| - | + | ||
| - | Битовым индексом считается порядковый номер бита, начиная с наименее важного (англ. | + | |
| - | + | ||
| - | least significant bit, сокращённо LSB). Подсчёт начинается с нуля. Значение битового индекса | + | |
| - | + | ||
| - | у 8-битного числа 0-7, у 16-бинтого - 0-15 и 32-битного 0-31. | + | |
| - | + | ||
| - | ===== Funktsioonid | + | |
| * **// | * **// | ||
| - | | + | |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| - | * Tagastab bitimaski. | + | * Возвращает битовую маску. |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| - | * //state// - Tõeväärtus | + | * //state// - Значение |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| - | * Tagastab tõeväärtuse | + | * Возвращает значение |
| * **// | * **// | ||
| - | | + | |
| - | * //value// - Muutuja. | + | * //value// - Переменная. |
| - | * //bit// - Bitiindeks. | + | * //bit// - Битовый индекс. |
| - | * Tagastab tõeväärtuse | + | * Возвращает значение |
| - | ===== Näide | + | ===== Пример |
| - | Muutujas | + | Установка третьего бита высоким и инвертирование последнего в переменной |
| <code c> | <code c> | ||
| Line 73: | Line 61: | ||
| </ | </ | ||
| - | ===== Lähtekood | + | ===== Исходный код |
| - | Järgnevalt on lühendatud kujul toodud teegi lähtekood, kust on näha, mis iga makrofunktsiooni taga peitub: | + | Далее приведён сокращённый исходный код библиотеки, где видно, что скрывается за каждой макрофункцией: |
| <code c> | <code c> | ||
| // | // | ||
| - | // Funktsioonid bittidega tegelemiseks | + | // Функции для работы с битами |
| // | // | ||
| #define bit_mask(bit) | #define bit_mask(bit) | ||
| Line 90: | Line 78: | ||
| // | // | ||
| - | // Funktsioonid bitimaskidega tegelemiseks | + | // Функции для работы с битовыми масками |
| // | // | ||
| #define bitmask_set(value, | #define bitmask_set(value, | ||
| Line 98: | Line 86: | ||
| #define bitmask_is_set(value, | #define bitmask_is_set(value, | ||
| </ | </ | ||
| - | |||