В вычислениях полубайт [1] (иногда nybble , nyble или nybl, чтобы соответствовать написанию byte ) представляет собой четырехбитную агрегацию , [1] [2] [3] или половину октета . Он также известен как полубайтовый [4] или тетрадный . [5] [6] В сетевом или телекоммуникационном контексте полубайт часто называют полуоктетом , [ 7] квабитом , [8] или квартетом . [9] [10] Полубайт имеет шестнадцать ( 2 4 ) возможных значений. Полубайт может быть представлен одной шестнадцатеричной цифрой ( - ) и называется шестнадцатеричной цифрой . [11] 0
F
Полный байт (октет) представлен двумя шестнадцатеричными цифрами ( 00
– FF
); поэтому обычно байт информации отображается в виде двух полубайтов. Иногда набор всех 256 -байтовых значений представляется в виде таблицы 16×16 , которая дает легко читаемые шестнадцатеричные коды для каждого значения.
Четырехбитные компьютерные архитектуры используют группы по четыре бита в качестве основной единицы. Такая архитектура использовалась в первых микропроцессорах , карманных калькуляторах и карманных компьютерах . Они продолжают использоваться в некоторых микроконтроллерах . В этом контексте 4-битные группы иногда также называли символами [12] , а не полубайтами. [1]
Термин «ниббл» происходит от обозначения «половины байта», причем байт является омофоном английского слова « укус » . [4] В 2014 году Дэвид Б. Бенсон, почетный профессор Университета штата Вашингтон , вспомнил, что он в шутку использовал (и, возможно, придумал) термин полубайт как «полбайта» и единицу хранения, необходимую для хранения двоичных данных . закодированная десятичная цифра (BCD) примерно в 1958 году во время разговора с программистом Лос-Аламосской научной лаборатории . Альтернативное написание nybble отражает написание byte , как отмечалось в редакционных статьях Kilobaud и Byte в начале 1980-х годов. Еще одно раннее зарегистрированное использование термина « ниббл» произошло в 1977 году в группе технологий потребительского банкинга в Ситибанке. Он создал стандарт до ISO 8583 для транзакционных сообщений между банкоматами и центрами обработки данных Ситибанка , который использовал базовую информационную единицу «NABBLE».
Полубайт используется для описания объема памяти, используемой для хранения цифры числа, хранящегося в упакованном десятичном формате (BCD) в мэйнфрейме IBM. Этот метод используется для ускорения вычислений и упрощения отладки. 8-битный байт делится пополам, и каждый полубайт используется для хранения одной десятичной цифры. Последний (самый правый) полубайт переменной зарезервирован для знака. Таким образом, переменная, которая может хранить до девяти цифр, будет «упакована» в 5 байт. Простота отладки обусловлена тем, что числа можно прочитать в шестнадцатеричном дампе , где два шестнадцатеричных числа используются для представления значения байта, например 16×16 = 2 8 . Например, пятибайтовое значение BCD 31
41
59
26
5C
представляет десятичное значение +314159265
.
Исторически были случаи, когда полубайт использовался для группы битов больше 4. В линейке микрокомпьютеров Apple II большая часть управления дисководом и записи с групповым кодированием была реализована программно. Запись данных на диск осуществлялась путем преобразования 256-байтовых страниц в наборы 5-битных (позже 6-битных ) полубайтов, а загрузка данных с диска требовала обратного. [13] [14] [15] Более того, в документации 1982 года по интегрированной машине Воза постоянно упоминается «8-битный полубайт». [16] Термин « байт» когда-то имел такую же двусмысленность и означал набор битов, но не обязательно 8, отсюда и различие между байтами и октетами или полубайтами и квартетами (или квадбитами ). Сегодня термины «байт» и «полубайт» почти всегда относятся к 8-битным и 4-битным коллекциям соответственно и очень редко используются для обозначения каких-либо других размеров.
Полубайт можно представить в шестнадцатеричном формате следующим образом:
Термины «младший полубайт» и «высокий полубайт» используются для обозначения полубайтов, содержащих соответственно менее значимые биты и более значимые биты в байте. В графическом представлении битов внутри байта самый левый бит может представлять собой старший бит ( MSB ), что соответствует обычной десятичной записи, в которой цифра слева от числа является наиболее значимой. На таких иллюстрациях четыре бита в левом конце байта образуют старший полубайт, а оставшиеся четыре бита — младший полубайт. [17] Например,
девяносто семь = 97 10 = (0110 0001) 2 = 61 шестнадцатеричный
старший полубайт — 0110 2 ( 6 шестнадцатеричный ), а младший — 0001 2 ( 1 шестнадцатеричный ). Общее значение равно старшему полубайту × 16 10 + младшему полубайту ( 6 × 16 + 1 = 97 10 ).
Полубайт можно извлечь из байта, выполнив поразрядную логическую операцию И и, при необходимости, сдвиг битов в зависимости от того, должен быть извлечен старший или младший полубайт.
В С :
#define HI_NIBBLE(b) (((b) >> 4) & 0x0F) #define LO_NIBBLE(b) ((b) & 0x0F)
где b
должна быть переменная или константа целочисленного типа данныхb
, и используется только младший байт .
Например, HI_NIBBLE(0xAB)==0xA
и LO_NIBBLE(0xAB)==0xB
.
В Общем Лиспе :
( defun hi-nibble ( b ) ( ldb ( byte 4 4 ) b )) ( defun lo-nibble ( b ) ( ldb ( byte 4 0 ) b ))
[...] Характеристическое восьмибитное поле иногда называют байтом , четырехбитное поле можно назвать полубайтом. [...]
Каждая из этих букв соответствует одному из целых чисел от нуля до пятнадцати, поэтому в двоичном представлении требуется 4 бита (одна «тетрада»).
Символ данных представляет собой один квартет (4 бита) двоичных данных.
Каждая шестнадцатеричная цифра (0–f) представляет ровно 4 бита.
[...]
Бит
- наименьшая единица информации, которая может быть представлена. (Бит может находиться в одном из двух состояний: 0 или 1). [...]
Байт
— группа из 8 последовательных битов, занимающих одну ячейку памяти. [...]
Символ
— группа из 4 последовательных битов данных. [...](Примечание. В этом руководстве для Intel 4004 термин « символ» используется для обозначения 4-битных, а не 8-битных объектов данных . Intel перешла на использование более распространенного термина « полубайт» для 4-битных объектов в своей документации для последующего процессора 4040 уже в 1974 году. )