Skubać - Nibble

Oktet Kod strona 866 tabela czcionki zamówić przekąski.

W obliczeniowej , A dziobanie (czasami nybble lub nyble dopasować pisowni bajtu ) jest cztero nieco agregacji lub pół oktetu . Znany jest również jako pół-bajt lub Tetrade . W sieciowym lub telekomunikacyjnym kontekście dziobanie jest często nazywany pół-oktet , quadbit lub kwartet . Nibble ma szesnaście ( 2 4 ) możliwych wartości. Nibble może być reprezentowany przez pojedynczą cyfrę szesnastkową ( – ) i nazywany cyfrą szesnastkową . 0F

Pełny bajt (oktet) jest reprezentowany przez dwie cyfry szesnastkowe ( 00FF); w związku z tym powszechne jest wyświetlanie bajtu informacji jako dwóch kęsów. Czasami zbiór wszystkich 256- bajtowych wartości jest reprezentowany jako tabela 16×16 , która daje łatwe do odczytania kody szesnastkowe dla każdej wartości.

Czterobitowe architektury komputerowe wykorzystują grupy czterech bitów jako podstawową jednostkę. Takie architektury były używane we wczesnych mikroprocesorach , kalkulatorach kieszonkowych i komputerach kieszonkowych . Są nadal używane w niektórych mikrokontrolerach . W tym kontekście 4-bitowe grupy były czasami nazywane również znakami, a nie kęsami.

Historia

Określenie skubać pochodzi od jego reprezentujący „pół bajt”, z bajt do homophone z angielskim słowem ukąszenia . W 2014 r. David B. Benson, emerytowany profesor na Washington State University , przypomniał sobie, że żartobliwie użył (i prawdopodobnie ukuł) termin skubać jako „pół bajta” i jednostkę pamięci wymaganą do przechowywania cyfr dziesiętnych zakodowanych binarnie ( BCD) cyfra dziesiętna około 1958, podczas rozmowy z programistą Los Alamos Scientific Laboratory . Alternatywna pisownia nybble odzwierciedla pisownię byte , jak zauważono w artykułach wstępnych Kilobaud i Byte we wczesnych latach 80-tych. Kolejne wczesne odnotowane użycie terminu nybble miało miejsce w 1977 r. w grupie technologii bankowości konsumenckiej w Citibanku. Stworzył standard sprzed ISO 8583 dla komunikatów transakcyjnych pomiędzy bankomatami a centrami danych Citibanku, który wykorzystywał podstawową jednostkę informacyjną „NABBLE”.

Półbajt jest używany do opisania ilości pamięci używanej do przechowywania cyfry liczby przechowywanej w upakowanym formacie dziesiętnym (BCD) na komputerze mainframe IBM. Ta technika służy do przyspieszenia obliczeń i łatwiejszego debugowania. Bajt 8-bitowy jest dzielony na pół, a każdy półbajt jest używany do przechowywania jednej cyfry dziesiętnej. Ostatni (pierwszy z prawej) kawałek zmiennej jest zarezerwowany dla znaku. W ten sposób zmienna, która może przechowywać do dziewięciu cyfr, zostałaby „upakowana” w 5 bajtów. Łatwość debugowania wynikała z tego, że liczby są czytelne w zrzucie szesnastkowym, gdzie dwie liczby szesnastkowe są używane do reprezentowania wartości bajtu, jako 16×16 = 2 8 . Na przykład pięciobajtowa wartość BCD 31 41 59 26 5Creprezentuje wartość dziesiętną +314159265.

Historycznie zdarzały się przypadki, w których nybble był używany dla grupy bitów większych niż 4. W linii mikrokomputerów Apple II znaczna część sterowania napędem dysku i nagrywania z kodowaniem grupowym była zaimplementowana w oprogramowaniu. Zapisywanie danych na dysku odbywało się poprzez konwersję 256-bajtowych stron na zestawy 5-bitowych (później 6-bitowych ) nibbles, a ładowanie danych z dysku wymagało odwrotnego przebiegu. Co więcej, dokumentacja z 1982 r. dla Integrated Woz Machine konsekwentnie odnosi się do „8-bitowego skubnięcia”. Określenie bajtów , gdy miały ten sam niejednoznaczności i oznaczało zestaw bitów, lecz nie koniecznie 8, a więc rozróżnienie bajtów i oktetów lub przekąski i kwartety (lub quadbits ). Obecnie terminy byte i nibble prawie zawsze odnoszą się odpowiednio do kolekcji 8-bitowych i 4-bitowych i są bardzo rzadko używane do wyrażania jakichkolwiek innych rozmiarów.

Tabela przekąsek

Szesnaście półbajtów i ich odpowiedniki w innych systemach liczbowych:

Przykłady
Dwójkowy Szesnastkowy
0000 0100 0010 0 4 2
0010 1010 1001 2 A 9
0010 0000 1001 2 0 9
1110 0100 1001 E 4 9
0011 1001 0110 3 9 6
0001 0000 0001 1 0 1
0011 0101 0100 3 5 4
0001 0110 0100 1 6 4
0 hex = 0 gru = 0 paź 0 0 0 0
1 heks = 1 grudnia = 1 paź 0 0 0 1
2 heksa = 2 grudnia = 2 października 0 0 1 0
3 heks = 3 grudnia = 3 październik 0 0 1 1
4 heksa = 4 grudnia = 4 października 0 1 0 0
5 hex = 5 grudnia = 5 października 0 1 0 1
6 hex = 6 grudnia = 6 października 0 1 1 0
7 hex = 7 grudnia = 7 października 0 1 1 1
8 hex = 8 grudnia = 10 października 1 0 0 0
9 hex = 9 grudnia = 11 października 1 0 0 1
hex = 10 grudnia = 12 października 1 0 1 0
B hex = 11 grudnia = 13 października 1 0 1 1
C szesnastkowy = 12 grudnia = 14 października 1 1 0 0
D hex = 13 grudnia = 15 października 1 1 0 1
E hex = 14 grudnia = 16 października 1 1 1 0
F heks = 15 grudnia = 17 października 1 1 1 1

Nibbles i wysokie przekąski

Terminy low nibble i high nibble są używane do oznaczenia półbajtów zawierających odpowiednio mniej znaczące bity i bardziej znaczące bity w bajcie. W graficznych reprezentacjach bitów w bajcie, skrajny lewy bit może reprezentować najbardziej znaczący bit ( MSB ), odpowiadający zwykłemu zapisowi dziesiętnemu, w którym cyfra po lewej stronie liczby jest najbardziej znacząca. Na takich ilustracjach cztery bity na lewym końcu bajtu tworzą górny półbajt, a pozostałe cztery bity tworzą dolny półbajt. Na przykład,

dziewięćdziesiąt siedem = 97 10 = (0110 0001) 2 = 61 hex

wysoki nibble to 0110 2 ( 6 hex ), a niski to 0001 2 ( 1 hex ). Łączna wartość to High Nibble × 16 10 + Low Nibble ( 6 × 16 + 1 = 97 10 ).

Wyodrębnianie skubnięcia z bajtu

Nibble można wyodrębnić z bajtu, wykonując bitową operację logiczną AND i opcjonalnie przesunięcie bitów w zależności od tego, czy ma zostać wyodrębniony wysoki, czy niski nibble.

W C :

#define HI_NIBBLE(b) (((b) >> 4) & 0x0F)
#define LO_NIBBLE(b) ((b) & 0x0F)

gdzie bmusi być zmienną lub stałą integralnego typu danych i bużywany jest tylko najmniej znaczący bajt .

Na przykład HI_NIBBLE(0xAB)==0xAi LO_NIBBLE(0xAB)==0xB.

We wspólnym sepleniu :

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

Zobacz też

Bibliografia

Linki zewnętrzne