Нібл

Нібл (англ. nibble, nybble або nyble) — чотирибітне утворення,[1] або половина октету. Від того, що нібл містить 4 біти, він може містити шістнадцять (24) можливих значень, отже нібл відповідає одному шістнадцятковому числу (тому його часто згадують як «шістнадцяткове число» (англ. hex digit, hexit)).

Таблиця символів впорядкована за ніблами

Одне з перших відомих використань терміна «Нібл» відбулось 1977 в Citibank, що створила до-ISO 8583 стандарт для транзакційних повідомлень між банкоматами та інформаційним центром, в якому нібл був основною одиницею даних.

Повний байт (октет) представляється двома шістнадцятковими числами; отже, зазвичай байт можна представити як пару ніблів. У царині комп'ютерних мереж і телекомунікацій нібл часто називають напівоктетом або квартетом.[джерело?] Іноді набір всіх 256 значень байта зображують у вигляді таблиці 16*16, з якої легко видно шістнадцяткові коди для кожного значення.

Термін «нібл» походить з того, що в англійській термін «byte» є омофоном для слова «bite», а саме слово «bite» означає кусати, в той час як «nibble» - гризти, тобто трошки кусати. Альтернативна вимова «nybble» походить від «byte».

Нібл використовується для опису кількості пам'яті необхідної для збереження однієї цифри в двійково-десятковому коді. Цей підхід використовується з метою пришвидшити обчислення і полелегшити зневадження. Байт з 8 бітів ділиться навпіл і в кожному ніблі зберігається одне число. Останній нібл змінної відводиться під знак. Таким чином, змінна, яка може зберігати до 9 чисел може бути упакована в 5 байтів. Полегшення зневадження відбувається через легкість читання чисел у шістнадцятковому вигляді пам'яті, де дві шістнадцяткових цифри використовуються для представлення значення байта, бо 16×16 = 28.

Історично, траплялись випадки, коли термін «нібл» використовувався для набору з менше ніж 8 бітів, але необов'язково 4. У лінії мікрокомп'ютерів Apple II, велика частина управління приводом диска була реалізована на програмному рівні. Запис даних на диск відбувався перетворенням 256-байтних сторінок в набори з 5-бітових або, пізніше, 6-бітових ніблів; Завантаження даних з диску вимагало зворотної дії. Зауважте, що термін «байт» також має неоднозначність; свого часу, байт значив набір з необов'язково 8 бітів. Сьогодні, терміни «байт» і «біт» здебільшого вказують на 8-, та 1-бітові набори, і дуже рідко використовуються для інших розмірів. Термін «напівнібл» використовується для вказання на 2 біти.

Шістнадцять ніблів та їх відповідники в інших системах числення:

0hex=0dec=0oct0000
1hex=1dec=1oct0001
2hex=2dec=2oct0010
3hex=3dec=3oct0011
4hex=4dec=4oct0100
5hex=5dec=5oct0101
6hex=6dec=6oct0110
7hex=7dec=7oct0111
8hex=8dec=10oct1000
9hex=9dec=11oct1001
Ahex=10dec=12oct1010
Bhex=11dec=13oct1011
Chex=12dec=14oct1100
Dhex=13dec=15oct1101
Ehex=14dec=16oct1110
Fhex=15dec=17oct1111

Добування нібла із байта

Мовою C:

#define HINIBBLE(b) (((b) >> 4) & 0x0F)
#define LONIBBLE(b) ((b) & 0x0F)

де b має бути змінною або сталою цілочисельного типу (або signed, або unsigned). (Звісно, якщо b за розміром більше ніж байт, тільки один байт (молодший) буде використовуватися). Наприклад, HINIBBLE(0xAB)==0xA і LONIBBLE(0xAB)==0xB.

Мовою Common Lisp:

(defun hi-nibble (b)
  (ldb (byte 4 4) b))
(defun lo-nibble (b)
  (ldb (byte 4 0) b))

Див. також

Примітки

  1. Hall, D. V. (1980). Microprocessors and Digital Systems. McGraw-Hill. ISBN 0-07-025571-7.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.