Skubać - Nibble
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ą .
0
F
Pełny bajt (oktet) jest reprezentowany przez dwie cyfry szesnastkowe ( 00
– FF
); 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
5C
reprezentuje 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:
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 b
musi być zmienną lub stałą integralnego typu danych i b
używany jest tylko najmniej znaczący bajt .
Na przykład HI_NIBBLE(0xAB)==0xA
i 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
- „Linia montażowa Apple” . Maj 1981.