16 bohatých. Hexadecimálny kód

  • 28.08.2019

Mnoho používateľov počítačov chápe, že počítač pracuje v binárnom číselnom systéme. Štáty binárnej sústavy sú tradične reprezentované číslami 0 a 1, aj keď presnejšie každý štát označuje prítomnosť alebo neprítomnosť signálu, to znamená, že by bolo správnejšie nazývať stavy „vypnuté“ a „ na „,“ alebo „nie“ a „áno“. Stav „vypnutý“ alebo „nie“ zodpovedá číslu 0 a stav „zapnutý“ alebo „áno“ číslu 1. Bežní používatelia zvyčajne nemusia úplne chápať štruktúru počítača, ale systém binárnych čísel sa prejavuje v podobe rôznych obmedzení založených na sile dvoch ... Kompaktnejšia verzia binárneho systému sa nazýva hexadecimálna. Šestnásť je štvrtá sila z dvoch. Z toho vyplýva, že je celkom ľahké previesť dlhé binárne sekvencie núl a jednotiek na krátke hexadecimálne. K tomu stačí rozdeliť binárnu postupnosť na skupiny so štyrmi číslicami (číslami), počínajúc najmenej významným bitom (vpravo) a každú skupinu nahradiť zodpovedajúcou šestnástkovou hodnotou.

Pre pohodlie vnímania binárnych údajov je zvykom používať hexadecimálny systém, pretože preklady z hexadecimálneho systému do binárneho a naopak sa vykonávajú jednoduchou výmenou reťazcov. Počítač pracuje výlučne s binárnymi sekvenciami a hexadecimálny zápis tejto sekvencie je štyrikrát kompaktnejší, pretože tento systém má základňu 16 (2 16) a binárnu sekvenciu 2. Binárna sekvencia môže byť dosť ťažkopádna. Napríklad 513 vyžaduje desať binárnych číslic (1000000001), ale šestnástkové číslo vyžaduje iba tri (201). Na vyjadrenie ľubovoľného hexadecimálneho čísla je však potrebných šestnásť rôznych znakov, nie desať použitých v našej známej desatinnej notácii. Prvých desať znakov sú znaky v rozsahu od 0 do 9, zvyšok sú písmená latinskej abecedy v rozmedzí od A do F. Písmená sa zvyčajne (ale nie vždy) píšu veľkými písmenami (veľkými písmenami) v hexadecimálnom tvare číslo. Prvých desať znakov (od 0 do 9) je napísaných rovnakým spôsobom ako desatinné čísla a zodpovedá im. Písmená v rozmedzí od A do F zodpovedajú hodnotám v rozmedzí od 10 do 15.

Zvážte korešpondenciu čísel od 0 do 15 hexadecimálnych a binárnych číselných systémov.

Desatinná notácia Hexadecimálny zápis Binárna notácia
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C. 1100
13 D 1101
14 E 1110
15 F 1111

Položky 10, 11 atď. V desatinných, binárnych a hexadecimálnych systémoch sa nezhodujú. Pozrime sa na malý príklad. Predpokladajme, že máme hexadecimálne číslo 1A5E. ak chcete previesť na binárne hodnoty, jednoducho nahraďte hexadecimálne číslice zodpovedajúcimi binárnymi skupinami. Ukázalo sa to 0001 1010 0101 1110. Ak odstránime zanedbateľné nuly pred číslom a zapíšeme ho bez oddeľovačov, dostaneme 1101001011110. Pre spätný preklad rozdelíme číslo na skupiny štyroch číslic, počnúc najnižšou (vpravo) strana), a tiež pre pohodlie pridajte do 4 číslic zanedbateľné nuly v najvyššej skupine. Získame 0001 1010 0101 1110. Nahraďte skupiny zodpovedajúcimi hexadecimálnymi hodnotami, dostaneme 1A5E.

Ak chcete previesť hexadecimálne číslo na desatinné miesto, môžete použiť schému, podľa ktorej píšeme desatinné čísla. V desiatkovej sústave predstavuje každá číslica zodpovedajúcu mocninu desiatich. Začína sa od nuly a zvyšuje sa sprava doľava. Napríklad desatinné číslo 123 predstavuje 1 * 10 2 + 2 * 10 1 + 3 * 10 0. Podobným spôsobom prevedieme číslo 1A5E na desatinnú číselnú sústavu. V hexadecimálnom spôsobe i v desatinnom tvare označuje každá číslica zodpovedajúcu mocninu čísla šestnásť. Začína sa od nuly a zväčšuje sa sprava doľava. Symboly 1 a 5 v šestnástkovej notácii zodpovedajú 1 a 5 v desatinnej čiarke a znaky A a E - 10 a 14. Potom 1A5E možno reprezentovať v desatinnej notácii ako 1 * 16 3 + 10 * 16 2 + 5 * 16 1 + 14 * 16 0 \u003d 6750. Na vyhodnotenie šestnástkových čísel však nie je vôbec potrebné prevádzať ich na desatinné miesta. Pravidlá pre porovnanie, sčítanie a násobenie sú v tomto systéme rovnaké ako v desatinnom čísle, nezabúda sa hlavne na to, že každá číslica môže obsahovať hodnoty od 0 do 15. Pre rýchlejší preklad čísel medzi číselným systémom môžete použite štandardnú kalkulačku vo Windows, na to stačí v pokročilom režime kalkulačky, zvoľte číselný systém, zadajte do neho číslo a vyberte požadovaný číselný systém, v ktorom by sa mal výsledok zobraziť.

Pretože hexadecimálne čísla, ktoré sú iba číslami, sa dajú ľahko zameniť s desatinnými číslami, sú zvyčajne označené tak, aby bolo zrejmé, že sa používa hexadecimálny zápis. Hexadecimálne položky sa zvyčajne označujú buď pridaním malého písmena „h“ na koniec, alebo predponou „0x“ pred napísaním čísla. Hexadecimálne číslo 1A5E teda možno zapísať ako 1A5Eh alebo 0x1A5E, kde „h“ na konci alebo „0x“ na začiatku znamenajú, že sa používa hexadecimálny zápis.

Hexadecimálny číselný systém má abecedu pozostávajúcu zo 16 číslic:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.

Pri písaní čísla v hexadecimálnej sústave sa písmenami A, B, C, D, E, F používajú na zápis čísel označujúcich čísla 10, 11, 12 13, 14 15, v uvedenom poradí.

Prevod čísel z hexadecimálneho na desatinné miesto

Pomocou už známeho vzorca môžete previesť ľubovoľné hexadecimálne číslo na desatinné

Príklady.

    AE07 16 \u003d 10 ∙ 16 3 + 14 ∙ 16 2 + 0 ∙ 16 1 + 7 ∙ 16 0 \u003d 44551 10.

    100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

    58 16 =5∙16 1 +8∙16 0 =.88 10 .

    2A 16 \u003d 2 ∙ 16 1 + 10 ∙ 16 0 \u003d 42 10.

Prevod čísla z desatinného na hexadecimálne sa vykonáva rovnakým spôsobom ako v binárnom formáte.

Prevod čísel z hexadecimálneho na binárny a naopak

Akékoľvek hexadecimálne číslo môžete previesť na binárne takto. Každá číslica hexadecimálneho zápisu čísla je napísaná v štvormiestnom binárnom čísle - zápisník... Potom môžu byť nuly vľavo zahodené.

2) 2A \u003d 0010 1010 2 \u003d 101010 2.

3) 58 16 = 0101 1000 2 = 1011000 2 .

Naopak, ľubovoľné binárne číslo môžete previesť na hexadecimálne rovnakým spôsobom. Každé štyri binárne číslice počítané sprava doľava sú napísané jednou hexadecimálnou číslicou. Tieto čísla sú tiež umiestnené sprava doľava.

Príklady.

2.101010 2 \u003d 10 1010 2 \u003d 2A.

3. 1011000 2 = 101 1000 2 = 58 16 .

Osmičkový číselný systém

Systém osmičkových čísel má abecedu pozostávajúcu z 8 číslic:

0, 1, 2, 3, 4, 5, 6, 7.

Prevod čísla z desatinného na osmičkový a naopak sa vykonáva analogicky ako pri prevode na binárne / z binárneho čísla.

Prevod čísel z osmičky na binárne a naopak

Každá číslica osmičkovej reprezentácie čísla je napísaná v trojmiestnom binárnom čísle - triáda.

Príklady.

2563 8 = 010 101 110 011 2 =10101110011 2 .

1001101 2 = 001 001 101 2 = 115 8 .

Metodické materiály pre laboratórnu triedu č. 1

Téma laboratória: Číselné systémy. Informácie o meraní.

Počet hodín: 2.

Príklady riešení

    Preklad zp -ary systém do 10-ročného. Nech je potrebné previesť číslo v určitej číselnej sústave na desatinné. Ak to chcete urobiť, musíte to reprezentovať vo forme

11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

    Presun z 10-ročného systému dop -ichny.

2.1 98 10 → X 2.

Vydeľte číslo 2. Potom vydeľte neúplný kvocient o 2. Pokračujte, kým sa neúplný kvocient nezmení na menej ako 2, t. rovná sa 1.

    98: 2 \u003d 49. Zvyšok je 0 .

    49: 2 \u003d 24. Zvyšok je 1 .

    24: 2 \u003d 12. Zvyšok - 0 .

    12: 2 \u003d 6. Zvyšok - 0 .

    6: 2 \u003d 3. Zvyšok - 0 .

    3: 2 = 1 ... Zostávajúce - 1 .

Pretože posledný neúplný kvocient je 1, proces je ukončený. Všetky zvyšky napíšeme zdola nahor, počnúc posledným neúplným kvocientom, a získame číslo 1100010. Takže 98 10 \u003d 1100010 2.

2.2 2391 10 → X 16.

Číslo vydelíme číslom 16. Potom vydelíme neúplný kvocient 16. Pokračujte, kým neúplný kvocient nebude menší ako 16.

    2391: 16 \u003d 149. Zvyšok je 7 .

    149: 16 = 9 ... Zostávajúce - 5 .

Pretože posledný neúplný kvocient (9) je menší ako 16, proces je ukončený. Píšeme, počnúc posledným neúplným kvocientom, všetky zvyšky zdola nahor a dostaneme číslo 957. Takže 2391 10 \u003d 957 16.

2.3 12165 10 → X 2.

Ak sa prekladá rozdelením na binárny systém, získate pomerne ťažkopádny proces. Najskôr môžete číslo previesť na osmičkovú sústavu a potom nahradiť osmičkové číslice sprava doľava trojicami.

12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

    Stanovenie základne číselného systémup .

Jeden chlapec o sebe napísal: „Mám 24 prstov, 5 na každej ruke a 12 na nohách.“ Ako to môže byť?

Rozhodnutie. Je potrebné určiť základ číselného systému p... Keďže vieme, že existuje iba 10 10 prstov na nohách, potom 12 p =1∙p+2 \u003d 10 10. Z toho získame rovnicu p + 2 = 10  p \u003d 8. Takže chlapec hovoril o číslach v osmičkovej sústave. V skutočnosti existuje celkom 24 8 prstov \u003d 2 ∙ 8 + 4 \u003d 20 10 a na nohách - 12 8 \u003d 1 ∙ 8 + 2 \u003d 10 10.

Teraz existuje veľmi ľahká prechádzka súvisiaca so systémom hexadecimálnych čísel. V tomto prípade dúfame, že máte podozrenie a zrejme oprávnene, že by sme teraz mali mať 16 rôznych čísel.

Ako však vieme, tradičných („arabských“) čísel je iba desať. A trvá to šestnásť. Ukázalo sa, že chýba šesť znakov.

Komentovať
Vzniká teda čisto dizajnový problém pri téme „Značky“ - prísť s chýbajúcimi symbolmi pre čísla
.

To znamená, že v pravý čas museli špecialisti prísť s novými znakmi. Ale kedysi, na začiatku počítačovej éry, nebolo veľa možností v znameniach. Programátori mali iba znaky čísel a písmen. Preto sa vydali po základnej ceste: prvé písmená latinskej abecedy brali ako čísla, najmä preto, že to historicky nie je prvý prípad (už sme spomenuli, že spočiatku namiesto čísel mnoho ľudí používalo písmená).

Komentovať
Dúfame, že každý pochopí, prečo je v tomto prípade nemožné použiť napríklad číslice „10“, „11“, „12“ atď.? Pretože ak hovoríme o hexadecimálnom číselnom systéme, musí ich byť šestnásť číslice, nie čísla
.

A desatinné číslo „10“ sa začalo označovať latinským písmenom „A“ (presnejšie „číslo A“). Podľa toho nasledujú čísla „B“, „C“, „D“, „E“ a „P.“.

Pretože sme chceli vytvoriť hexadecimálny systém, bude mať od 16 nuly iba 16 číslic. Napríklad číslica „D“ je desatinné číslo „13“ a číslica „F“ je desatinné číslo „15“.

Keď k šestnástkovému číslu „F“ pripočítame jeden, potom, keď nám tieto čísla došli, vložíme do tejto číslice „O“ a jednu prenesieme na ďalšiu číslicu, takže sa ukáže, že desatinné číslo „16 "bude v hexadecimálnom notačnom systéme reprezentovaný ako číslo" 10 ", to znamená, že sa ukáže" hexadecimálny desať ". Spojme desatinné a hexadecimálne čísla do jednej tabuľky (tabuľka 4.5).

Tabuľka 4.5... Korešpondencia medzi desatinnými a hexadecimálnymi číslami.

Desatinné číslo Hexadecimálne číslo Desatinné číslo Hexadecimálne číslo
0-9 0-9 29 1D
10 A 30 1E
11 IN 31 1F
12 ZO 32-41 20-29
13 D 42-47 2A-2F
14 E 48-255 30-FF
15 F 256 100
16 10 512 200
17-25 11-19 1024 400
26 1A 1280 500
27 1B 4096 1000
28 1C

Hexadecimálny systém sa používa na kompaktnejšie písanie binárnych informácií. V skutočnosti je „hexadecimálny tisíc“ štyroch bitov trinásť bitov v binárnom formáte (1 000 16 \u003d 1 000 000 000 000 2).

Pri diskusii o číselných systémoch sa opakovane objavovali „desiatky“, „stovky“ a „tisíce“, preto je potrebné venovať pozornosť takzvaným „okrúhlym“ číslam.

Hexadecimálny zápis („Hex“) je vhodný spôsob reprezentácie binárnych hodnôt. Rovnako ako desatinné číslo je základ desať a binárne číslo je základ dva, hexadecimálne číslo je základ šestnásť.

Číselná sústava so základnou 16 číslicami používa čísla od 0 do 9 a písmená od A po F. Obrázok zobrazuje ekvivalentné desatinné, binárne a hexadecimálne hodnoty pre binárne čísla 0000 až 1111. Ľahšie sa nám vyjadruje hodnota ako jedna hexadecimálna číslica ako štyri bity.

Pochopenie bajtov

Vzhľadom na to, že 8 bitov (bajtov) je štandardné binárne zoskupenie, je možné binárne čísla od 00000000 do 11111111 reprezentovať v hexadecimálnom formáte ako čísla od 00 do FF. Na dokončenie 8-bitovej reprezentácie sa vždy zobrazujú úvodné nuly. Napríklad binárna hodnota 0000 1010 v hexáne by bola 0A.

Reprezentujúce hexadecimálne hodnoty

Poznámka: Je dôležité rozlišovať medzi hexadecimálnymi a desatinnými hodnotami znakov 0 až 9, ako je to znázornené na obrázku.

Hexadecimálne hodnoty sú v texte zvyčajne predstavované hodnotou, ktorej predchádza 0x (napríklad 0x73), alebo dolným indexom 16. Menej často za nimi môže nasledovať H, napríklad 73H. Pretože však indexový text nie je rozpoznaný na príkazovom riadku ani v programovacom prostredí, v technickom znázornení hexadecimálnych čísel je pred ním znak „0x“ (nula X). Preto by sa vyššie uvedené príklady zobrazili ako 0x0A, respektíve 0x73.

Hexadecimálny zápis sa používa na vyjadrenie ethernetových MAC adries a adries IP verzie 6.

Hexadecimálne konverzie

Prevod čísel medzi desatinnými a hexadecimálnymi hodnotami je jednoduchý, ale rýchle delenie alebo násobenie číslom 16 nie je vždy vhodné. Ak sú takéto prevody potrebné, je zvyčajne jednoduchšie previesť desatinnú alebo hexadecimálnu hodnotu na binárnu a potom previesť binárnu hodnotu na desatinnú alebo hexadecimálnu, podľa toho, čo chcete získať.

V praxi je možné rozpoznať binárne bitové vzory, ktoré zodpovedajú desatinným a hexadecimálnym hodnotám. Obrázok zobrazuje tieto vzory pre niektoré 8-bitové hodnoty.

Tabuľka 2.4. Hexadecimálny kódovací systém
Desatinný systém Hex systém Desatinný systém Hex systém
0 0 (0000) 10 A (1010)
1 1(0001) 11 B (1011)
2 2 (0010) 12 C (1100)
3 3 (0011) 13 D (1101)
4 4 (0100) 14 E (1110)
5 5 (0101) 15 F (1111)
6 6 (0110) 16 10 (00010000)
7 7 (0111) 17 11 (00010001)
8 8 (1000) 18 12 (00010010)
9 9 (1001) 19 13 (00010011)

Ak chcete previesť hexadecimálne číslo na desatinné, musíte vynásobiť hodnotu najmenej významnej (nulovej) číslice jednou, hodnotu nasledujúcej (prvej) číslice 16, druhú číslicu 256 (16 2) atď., a potom pridajte všetky produkty. Vezmime si napríklad číslo A17F:

A17F \u003d F * 16 0 + 7 * 16 1 + 1 * 16 2 + A * 16 3 \u003d 15 * 1 + 7 * 16 + 1 * 256 + 10 * 4096 \u003d 41343

Tabuľka 2.5. 8-miestny systém kódovania
Desatinný systém Osmičkový systém Desatinný systém Osmičkový systém
0 0 (000) 10 12 (001010)
1 1(001) 11 13 (001011)
2 2 (010) 12 14 (001100)
3 3 (011) 13 15 (001101)
4 4 (100) 14 16 (001110)
5 5 (101) 15 17 (001111)
6 6 (110) 16 20 (010000)
7 7 (111) 17 21 (010001)
8 10 (001000) 18 22 (010010)
9 11 (001001) 19 23 (010011)

Ale každý špecialista na digitálny hardvér (vývojár, operátor, opravár, programátor atď.) Sa musí naučiť zaobchádzať s hexadecimálnymi a binárnymi systémami rovnako voľne ako s bežnými desatinnými miestami, aby sa nevyžadovali žiadne prenosy zo systému do systému.

Osmičkové kódovanie sa používa oveľa menej často ako hexadecimálne kódovanie, ktoré je postavené na rovnakom princípe ako hexadecimálne, ale binárne číslice sú rozdelené do troch trojciferných skupín. Každá skupina (kódová číslica) je potom označená jedným symbolom. Každá číslica 8-kódového kódu môže nadobúdať osem hodnôt: 0, 1, 2, 3, 4, 5, 6, 7 (tabuľka 2.5).

Okrem uvažovaných kódov existuje aj takzvané binárne-desatinné zastúpenie čísel. Rovnako ako v hexadecimálnom kóde, aj v binárnom-desatinnom kóde zodpovedá každý bit kódu štyrom binárnym číslam, avšak každá skupina štyroch binárnych číslic môže trvať nie šestnásť, ale iba desať hodnôt zakódovaných symbolmi 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. To znamená, že jedno desatinné miesto zodpovedá štyrom binárnym. Vo výsledku sa ukazuje, že zápis čísel do binárneho-desatinného kódu sa nelíši od zápisu do obyčajného desatinného kódu (tabuľka 2.6), ale v skutočnosti ide iba o špeciálny binárny kód, ktorého každá číslica môže mať iba dve hodnoty: 0 a 1. BCD je niekedy veľmi užitočné na usporiadanie desatinných číselných ukazovateľov a hodnotiacich tabuliek.

Tabuľka 2.6. Systém binárneho desatinného miesta
Desatinný systém Binárna desatinná sústava Desatinný systém Binárna desatinná sústava
0 0 (0000) 10 10 (00010000)
1 1(0001) 11 11 (00010001)
2 2 (0010) 12 12 (00010010)
3 3 (0011) 13 13 (00010011)
4 4 (0100) 14 14 (00010100)
5 5 (0101) 15 15 (00010101)
6 6 (0110) 16 16 (00010110)
7 7 (0111) 17 17 (00010111)
8 8 (1000) 18 18 (00011000)
9 9 (1001) 19 19 (00011001)

V binárnom kóde je možné s číslami vykonať akékoľvek aritmetické operácie: sčítanie, odčítanie, násobenie, delenie.

Zvážte napríklad pridanie dvoch 4-bitových binárnych čísel. Sčítajme čísla 0111 (desatinné miesto 7) a 1011 (desatinné miesto 11). Sčítanie týchto čísel nie je o nič zložitejšie ako desatinné číslo:

Pri sčítaní 0 a 0 dostaneme 0, pri sčítaní 1 a 0 dostaneme 1, pri sčítaní 1 a 1 dostaneme 0 a prenesieme na ďalšiu číslicu 1. Výsledok je 10010 (desatinné miesto 18). Pridanie ľubovoľných dvoch n-bitových binárnych čísel môže mať za následok n-bitové alebo (n + 1) -bitové číslo.

Odčítanie sa vykonáva rovnakým spôsobom. Nechajte číslo 0111 (7) odčítať od čísla 10010 (18). Píšeme čísla zarovnané na najmenej významný bit a odčítame ich rovnakým spôsobom ako v prípade desatinnej sústavy:

Odčítaním 0 od 0 dostaneme 0, odčítaním 0 od 1 dostaneme 1, odčítaním 1 od 1 dostaneme 0, odčítaním 1 od 0 dostaneme 1 a v nasledujúcom bite si požičáme 1. Výsledok je 1011 (desatinné číslo 11).

Pri odčítaní je možné získať záporné čísla, takže je potrebné použiť binárne zastúpenie záporné čísla.

Na súčasné znázornenie binárnych kladných aj binárnych záporných čísel tzv dodatočný kód... Záporné čísla v tomto kóde sú vyjadrené ako číslo, ktoré po pridaní k kladnému číslu rovnakej veľkosti vedie k nule. Ak chcete získať záporné číslo, musíte zmeniť všetky bity rovnakého kladného čísla na ich opak (0 o 1, 1 o 0) a pridať 1. Napríklad zapíšte číslo –5. Číslo 5 v binárnom kóde vyzerá ako 0101. Nahraďte bity opačným: 1010 a pridajte jeden: 1011. Výsledok spočítame s pôvodným číslom: 1011 + 0101 \u003d 0000 (prevod na piatu číslicu ignorujeme).

modulo 2 dve binárne čísla 0111 a 1011:

Medzi ďalšie bitové operácie na binárnych číslach patria funkcie AND a OR. Výsledkom funkcie AND je iba jedno, ak zodpovedajúce bity dvoch pôvodných čísel obsahujú obidve, inak je výsledok -0. Výsledkom funkcie OR je jedna, keď aspoň jeden zo zodpovedajúcich bitov pôvodných čísel je 1, inak je výsledok 0.