Okusovat - Nibble

Oktet CP866 tabulky font nařízeno křupky.

Při práci na počítači je nibble (občas nybble nebo nyble, aby odpovídala hláskování bajtu ) čtyřbitová agregace neboli polovina oktetu . Je také známý jako půlbajt nebo tetrade . V kontextu sítí nebo telekomunikací se nibble často nazývá semi-oktet , quadbit nebo kvartet . Nibble má šestnáct ( 2 4 ) možných hodnot. Nibble může být reprezentována jednou hexadecimální číslicí ( 0- F) a nazývána hexadecimální číslicí .

Celý bajt (oktet) je reprezentován dvěma hexadecimálními číslicemi ( 00- FF); proto je běžné zobrazit bajt informace jako dvě kousky. Někdy je sada všech 256 bajtů hodnot reprezentována jako tabulka 16 × 16 , která poskytuje snadno čitelné hexadecimální kódy pro každou hodnotu.

Čtyřbitové počítačové architektury používají jako základní jednotku skupiny čtyř bitů. Takové architektury byly použity v raných mikroprocesorech , kapesních kalkulačkách a kapesních počítačích . V některých mikrokontrolérech se nadále používají . V této souvislosti se 4bitovým skupinám někdy říkalo spíše znaky než kousky.

Dějiny

Termín ohlodávat pochází z jeho představující „napůl byte“, s bytem je homofonum z anglického slova sousto . V roce 2014 si David B. Benson, emeritní profesor na Washingtonské státní univerzitě , vzpomněl, že hravě použil (a možná i razil) termín nibble jako „půl bajtu“ a jednotku úložiště potřebnou k uložení binárně kódovaného desetinného čísla ( BCD) desetinná číslice kolem roku 1958, když hovořil s programátorem vědecké laboratoře Los Alamos . Alternativní hláskování nybble odráží pravopis bajtu , jak je uvedeno v úvodnících Kilobaud a Byte na začátku 80. let. Další rané zaznamenané použití termínu nybble bylo v roce 1977 v rámci skupiny spotřebitelského bankovnictví v Citibank. Byl vytvořen standard ISO 8583 pro transakční zprávy mezi bankomaty a datovými centry Citibank, který používal základní informační jednotku „NABBLE“.

Nibble se používá k popisu množství paměti použité k uložení číslice čísla uloženého v zabaleném desítkovém formátu (BCD) v sálovém počítači IBM. Tato technika se používá k rychlejšímu výpočtu a snadnějšímu ladění. 8bitový bajt je rozdělen na polovinu a každá nibble slouží k uložení jedné desetinné číslice. Poslední (úplně vpravo) okus proměnné je vyhrazena pro znamení. Proměnná, která může uložit až devět číslic, by tedy byla „zabalena“ do 5 bytů. Snadné ladění bylo způsobeno tím, že čísla byla čitelná na hexadecimálním výpisu, kde dvě hexadecimální čísla představují hodnotu bajtu, 16 × 16 = 2 8 . Například pětibajtová hodnota BCD pro 31 41 59 26 5Cpředstavuje desetinnou hodnotu +314159265.

Historicky existují případy, kdy byl nybble použit pro skupinu bitů větších než 4. V mikropočítačové řadě Apple II byla velká část ovládání diskové jednotky a skupinově kódovaného záznamu implementována do softwaru. Zápis dat na disku byla provedena převedením 256 bajtů stránky do sad 5-bit (později, 6-bit ) křupky a data disk loading nutné naopak. Dokumentace k integrovanému stroji Woz z roku 1982 navíc konzistentně odkazuje na „8bitové okusování“. Termín byte jednou měl stejnou nejednoznačnost a rozumí sada bitů, ale ne nezbytně 8, a proto je rozlišení z bytů a oktetů nebo křupky a kvartet (nebo quadbits ). Pojmy byte a nibble se dnes téměř vždy vztahují na 8bitové a 4bitové kolekce a velmi zřídka se používají k vyjádření jiných velikostí.

Tabulka okusů

Šestnáct okusů a jejich ekvivalenty v jiných číselných soustavách:

Příklady
Binární Hexadecimální
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 prosince = 0 říj 0 0 0 0
1 hex = 1 prosince = 1. října 0 0 0 1
2 hex = 2 prosince = 2. října 0 0 1 0
3 hex = 3 prosince = 3 říj 0 0 1 1
4 hex = 4 prosince = 4. října 0 1 0 0
5 hex = 5 prosince = 5 říj 0 1 0 1
6 hex = 6 prosince = 6. října 0 1 1 0
7 hex = 7 prosince = 7. října 0 1 1 1
8 hex = 8 prosince = 10. října 1 0 0 0
9 hex = 9. prosince = 11. října 1 0 0 1
hex = 10 prosince = 12. října 1 0 1 0
B hex = 11 prosince = 13. října 1 0 1 1
C hex = 12 prosince = 14. října 1 1 0 0
D hex = 13. prosince = 15. října 1 1 0 1
E hex = 14 prosince = 16. října 1 1 1 0
F hex = 15 prosince = 17. října 1 1 1 1

Nízké a vysoké kousky

Termíny low nibble a high nibble se používají k označení kousků obsahujících méně významné bity a významnější bity v bajtu. V grafických reprezentacích bitů v bajtu by bit úplně vlevo mohl představovat nejvýznamnější bit ( MSB ), což odpovídá běžnému desítkovému zápisu, ve kterém je číslice nalevo od čísla nejvýznamnější. V takových ilustracích tvoří čtyři bity na levém konci bajtu vysokou nibble a zbývající čtyři bity tvoří nízkou nibble. Například,

devadesát sedm = 97 10 = (0110 0001) 2 = 61 hex

vysoká nibble je 0110 2 ( 6 hex ) a dolní nibble je 0001 2 ( 1 hex ). Celková hodnota je high-nibble × 16 10 + low-nibble ( 6 × 16 + 1 = 97 10 ).

Extrahování nibble z bajtu

Nibble lze extrahovat z bajtu provedením bitové logické operace AND a volitelně bitovým posunem v závislosti na tom, zda má být extrahována vysoká nebo nízká nibble.

V C :

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

kde bmusí být proměnná nebo konstanta integrálního datového typu a používá se pouze nejméně významný bajt b.

Například HI_NIBBLE(0xAB)==0xAa LO_NIBBLE(0xAB)==0xB.

Ve společném Lispu :

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

Viz také

Reference

externí odkazy