Welke getallen worden gebruikt in het hexadecimale getalsysteem? Binair octaal hexadecimaal getalsysteem

Het hexadecimale getalsysteem heeft een alfabet dat uit 16 cijfers bestaat:

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

Bij het schrijven van een getal in het hexadecimale systeem worden respectievelijk de letters A, B, C, D, E, F gebruikt om de cijfers te schrijven die de getallen 10, 11, 12. 13, 14. 15 aanduiden.

Getallen omzetten van hexadecimaal naar decimaal

U kunt elk hexadecimaal getal naar decimaal converteren met behulp van de reeds bekende formule

Voorbeelden.

    AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =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 =2∙16 1 +10∙16 0 =42 10.

Het omzetten van een getal van het decimale systeem naar hexadecimaal gebeurt op dezelfde manier als naar binair.

Getallen converteren van hexadecimaal naar binair en omgekeerd

U kunt elk hexadecimaal getal als volgt naar binair converteren. Elk cijfer van een hexadecimaal getal wordt geschreven als een binair getal van vier cijfers: notitieboekje. Hierna kunnen de nullen aan de linkerkant worden weggegooid.

2) 2A= 0010 1010 2 = 101010 2 .

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

Omgekeerd kunt u elk binair getal op dezelfde manier naar hexadecimaal converteren. Elke vier binaire cijfers, geteld van rechts naar links, worden geschreven met één hexadecimaal cijfer. Deze nummers bevinden zich ook van rechts naar links.

Voorbeelden.

2. 101010 2 = 10 1010 2 = 2A.

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

Octaal getalsysteem

Het octale getalsysteem heeft een alfabet dat uit 8 cijfers bestaat:

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

Het omzetten van een getal van het decimale stelsel naar octaal en andersom gaat op dezelfde manier als het omzetten van/naar binair getal.

Getallen converteren van octaal systeem naar binair en terug

Elk cijfer van een octaal getal wordt geschreven als een binair getal van drie cijfers: triade.

Voorbeelden.

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

1001101 2 = 001 001 101 2 = 115 8 .

Methodologisch materiaal voor laboratoriumles nr. 1

Onderwerp van de laboratoriumles: getalsystemen. Meetinformatie.

Aantal uren: 2.

Voorbeelden met oplossingen

    Vertaling vanP -air systeem naar 10-air systeem. Stel dat we een getal in een bepaald getalsysteem naar decimaal moeten converteren. Om dit te doen, moet u het in het formulier weergeven

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.

    Conversie van 10-cijferig systeem naarP -ichnaya.

2.1 98 10 → X2.

We delen het getal door 2. Vervolgens delen we het onvolledige quotiënt door 2. We gaan door totdat het onvolledige quotiënt kleiner wordt dan 2, d.w.z. gelijk aan 1.

    98: 2 = 49. Rest - 0 .

    49: 2 = 24. Rest - 1 .

    24: 2 = 12. Rest - 0 .

    12: 2 = 6. Rest - 0 .

    6: 2 = 3. Rest - 0 .

    3: 2 = 1 . 1 .

Omdat het laatste gedeeltelijke quotiënt 1 is, is het proces voorbij. We schrijven alle resten op van onder naar boven, te beginnen met het laatste onvolledige quotiënt, en we krijgen het getal 1100010. Dus 98 10 = 1100010 2.

2.2 2391 10 → X16.

Deel het getal door 16. Deel vervolgens het gedeeltelijke quotiënt door 16. Ga door totdat het gedeeltelijke quotiënt kleiner is dan 16.

    2391: 16 = 149. Rest - 7 .

    149: 16 = 9 . 5 .

Omdat het laatste gedeeltelijke quotiënt (9) kleiner is dan 16, is het proces voorbij. We schrijven, beginnend bij het laatste onvolledige quotiënt, alle resten op van onder naar boven en krijgen het getal 957. Dus 2391 10 = 957 16.

2.3 12165 10 → X2.

Als je per deling converteert naar het binaire systeem, krijg je een nogal omslachtig proces. U kunt het getal eerst naar octaal converteren en vervolgens de octale cijfers van rechts naar links vervangen door drieklanken.

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

    Het bepalen van de basis van een getalstelselP .

Een jongen schreef over zichzelf: „Ik heb 24 vingers, vijf aan elke hand en twaalf aan mijn voeten.” Hoe kan dit?

Oplossing. Het is noodzakelijk om de basis van het nummersysteem te bepalen P. Omdat we weten dat er maar 10 tenen zijn, 10 en dan 12 P =1∙P+2 = 10 10 . Vanaf hier krijgen we de vergelijking P + 2 = 10  P= 8. De jongen bedoelde dus getallen in het octale systeem. Er zijn inderdaad 24 8 = 2∙8+4 = 20 10 tenen, en 12 8 = 1∙8+2 = 10 10 tenen.

Het bij mensen bekende getallenstelsel is decimaal. Het is gebaseerd op tien cijfers van 0 tot 9. Het hexadecimale systeem onderscheidt zich door de aanwezigheid daarin van de eerste zes letters van het Latijnse alfabet voor het schrijven van cijfers naast de basisnummers. Dat wil zeggen, het getal 9 wordt gevolgd door het symbool “A”, wat overeenkomt met het getal 10 voor het decimale systeem. Dienovereenkomstig is F in hexadecimaal 16 in decimaal. Het gebruik van zestien tekens in het systeem is geen willekeurige keuze.

De eenheid van informatie is een beetje. Acht bits vormen een byte. Er bestaat een concept als een machinewoord: een gegevenseenheid die twee, dat wil zeggen zestien bits vertegenwoordigt. Dus gebruik zestien verschillende karakters, kunt u alle informatie beschrijven die tijdens de gegevensuitwisseling het kleinste deeltje zal zijn. U kunt er alle rekenkundige bewerkingen mee uitvoeren en het resultaat wordt dienovereenkomstig ook in het hexadecimale systeem verkregen.

Om te onderscheiden dat een getal in hexadecimaal is geschreven, wordt de letter “h” of het subscript “16” erna geschreven.

Sollicitatie

Het meest voorkomende gebruik van het hexadecimale getalsysteem is in foutcodes. softwareproducten, Bijvoorbeeld, besturingssysteem. De cijfers in deze codes zijn gestandaardiseerd. Als u een speciale tabel heeft, kunt u altijd bepalen wat deze of gene fout precies betekent.

In talen op een laag niveau, die zo dicht mogelijk bij machinecode liggen, wordt het hexadecimale systeem gebruikt om programma's te schrijven. Veel programmeurs gebruiken het ook bij het werken met talen op hoog niveau, omdat de getallen in dit systeem, met behulp van een speciale correspondentietabel, eenvoudig kunnen worden omgezet in het binaire systeem waarop het werk van het hele systeem is gebaseerd. digitale technologie. Alle informatie op een computer, zij het muziekbestand of tekstdocument, nadat de vertaling wordt weergegeven door de volgorde van het origineel binaire code, en het is handiger om het weer te geven in hexadecimale symbolen.

Een van de toepassingen van hexadecimale tekens is ook beschrijving kleurenschema's, dat wil zeggen dat de drie componenten R, G, B worden beschreven op een manier die geschikt is voor het gegeven systeem. Deze opnamebenadering wordt hexadecimale kleur genoemd

Mogelijkheid om het programma in te zien hexadecimale code Hiermee kunt u fouten opsporen, wijzigingen aanbrengen en aanvallers inschakelen deze aanpak gebruikt om programma's te hacken.

Om programma's in Assembly te schrijven, moet u het hexadecimale getalsysteem begrijpen. Er is niets ingewikkelds aan. In het leven gebruiken we het decimale systeem. Ik weet zeker dat jullie het allemaal weten, dus ik zal proberen het hexadecimale systeem uit te leggen aan de hand van een analogie met het decimale systeem.

Dus als we in het decimale systeem een ​​nul toevoegen aan een willekeurig getal aan de rechterkant, wordt dit getal tien keer groter. Bijvoorbeeld: 1 x 10 = 10; 10 x 10 = 100; 100 x 10 = 1000, enz. In dit systeem gebruiken we getallen van 0 tot en met 9, d.w.z. tien verschillende getallen (daarom wordt het decimaal genoemd).

In het hexadecimale systeem gebruiken we zestien "cijfers". Ik heb specifiek het woord ‘cijfers’ tussen aanhalingstekens geschreven, omdat... Er worden niet alleen cijfers gebruikt. En echt, hoe kan dat? Laat het me uitleggen: van 0 tot 9 tellen we op dezelfde manier als decimaal, maar dan wordt het zo: A, B, C, D, E, F. Het getal F is niet moeilijk bereken, het zal gelijk zijn aan 15 V decimaal systeem(zie Tabel 1).

Decimaal getal

Hexadecimaal getal

Tabel 1. Decimale en hexadecimale systemen.

Als we dus rechts van een willekeurig getal in het hexadecimale systeem een ​​nul toevoegen, zal dit getal toenemen met16 eenmaal.

Voorbeeld 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000, enz.

Kon je in voorbeeld 1 hexadecimale getallen onderscheiden van decimale getallen? En uit deze serie: 10, 12, 45, 64, 12, 8, 19? Deze kunnen hexadecimaal of decimaal zijn. Om verwarring te voorkomen en de computer het ene getal duidelijk van het andere te kunnen onderscheiden, is het in assembler gebruikelijk om het symbool h of H na een hexadecimaal getal te plaatsen ( H is een afkorting voor Engels. hexadecimaal (hexadecimaal). Kortheidshalve wordt het soms gewoon genoemd Hex ) . En zet niets achter de komma. Omdat getallen van 0 tot en met 9 hebben in beide systemen dezelfde betekenis, dan zijn de getallen geschreven als 5 en 5h hetzelfde.

Dat. Voorbeeld 1 (zie hierboven) zou correcter zijn om als volgt te schrijven: 1 x 16 = 10h; 10u x 16 = 100u; 100u x 16 = 1000u. Of zo: 1u x 10u = 10u; 10u x 10u = 100u; 100u x 10u = 1000u.

In volgende nummers zullen we bekijken waarom het hexadecimale systeem nodig is. En binnen op dit moment Voor ons voorbeeldprogramma hieronder moeten we weten over het bestaan ​​van hexadecimale getallen.

Dus laten we het samenvatten. Het hexadecimale getalsysteem bestaat uit 10 cijfers (van 0 tot 9) en 6 letters van het Latijnse alfabet (A, B, C, D, E, F). Als we rechts van een willekeurig getal in het hexadecimale systeem een ​​nul toevoegen, wordt dit getal met verhoogd16 eenmaal. Het is heel belangrijk om het te begrijpen dit onderwerp , omdat we het constant zullen gebruiken bij het schrijven van programma's.

Nu een beetje over hoe ik voorbeelden ga bouwen in Assembly. Het is niet helemaal handig om ze in HTML-formaat te presenteren, dus eerst zal er de programmacode zelf zijn met genummerde regels, en onmiddellijk daarna zullen er uitleg en opmerkingen zijn.

Iets als dit:

lijnen Programmacode
(1) mov ah, 9

Uitleg:

In regel (1) doen we dit, en in regel (15) doen we dat.

Groot verzoek: Kopieer GEEN programma's van een pagina naar het klembord en plak ze vervolgens in Kladblok (of ergens anders)! Typ ze handmatig opnieuw in een teksteditor. Als u een printer heeft, selecteert u het programma, drukt u het geselecteerde fragment af en brengt u het vanaf papier over naar de editor. Alle voorbeelden moeten zelf getypt worden! Dit versnelt het onthouden van operators.

En nog een ding. Er is geen verschil tussen kleine letters en hoofdletters in assembler. Registratie van het formulier:

De assembler neemt ze op dezelfde manier waar. Je kunt de assembler natuurlijk dwingen onderscheid te maken tussen kleine letters en hoofdletters, maar dat doen we voorlopig niet. Voor het gemak van het lezen van het programma, is het het beste om operators af te drukken kleine letters, en de namen van subroutines en labels beginnen met hoofdletters. Maar het hangt ervan af wie zich op zijn gemak zal voelen.

Laten we dus verder gaan met ons eerste programma:

(1) CSEG-segment

(2)org 100u

(4) Begin:

(6) beweeg ah, 9

(7) mov dx, offsetbericht

(8) tot 21u

(10) tot 20u

(11)

(12) Bericht db "Hallo wereld!$"

(13) CSEG eindigt

(14) einde Begin

Om alle operatoren in dit voorbeeld uit te leggen, hebben we verschillende edities nodig. Daarom zullen we de beschrijving van sommige commando's eenvoudig weglaten in dit stadium. Ga er maar van uit dat het zo zou moeten zijn. We zullen deze operators in de zeer nabije toekomst in detail bekijken. Regels genummerd (1), (2) en (13) negeert u dus eenvoudigweg.

De regels (3), (5), (9) en (11) worden blanco gelaten. Dit is gedaan voor de duidelijkheid. De assembler zal ze gewoon weglaten.

Laten we nu verder gaan met het bekijken van de resterende operators. De programmacode begint met regel (4). Dit is een markering die de assembler vertelt over het begin van de code. Regel (14) bevat het einde van de operator Begin ( Begin Engels begin; einde einde). Dit is het einde van het programma. Over het algemeen in plaats van het woord Beginnen er had iets anders gebruikt kunnen worden. Bijvoorbeeld, Begin:. In dit geval zouden we het programma moeten beëindigen Eindbegin (14).

Regels (6) (8) tonen het bericht Hallo wereld!. Hier zullen we kort moeten praten over processorregisters (we zullen dit onderwerp in het volgende nummer in meer detail bekijken).

Een processorregister is een speciaal toegewezen geheugen voor het opslaan van een getal.

Bijvoorbeeld:

Als we twee getallen willen optellen, schrijven we dat in de wiskunde als volgt:

A, B en C dit zijn een soort registers (als we het over een computer hebben) waarin bepaalde gegevens kunnen worden opgeslagen. A=5 kan gelezen worden als: Wijs A het getal 5 toe .

Om een ​​register een waarde toe te wijzen, is er een mov-operator in Assembler (van het Engelse move load). Regel (6) moet als volgt worden gelezen: Laden in het register AH.nummer 9 (met andere woorden, we wijzen toe AH.nummer 9). Hieronder zullen we bekijken waarom dit nodig is.

In regel (7) laden we het register in DX berichtadres voor uitvoer (in in dit voorbeeld dit zal een string zijnHallo wereld!$).

Interrupts worden in de volgende nummers uitgebreid besproken. Hier zal ik een paar woorden zeggen.

Onderbreken MS-DOS het is een soort subroutine (part MS-DOS), dat zich permanent in het geheugen bevindt en op elk moment vanuit elk programma kan worden opgeroepen.

Laten we het bovenstaande bekijken aan de hand van een voorbeeld (Aantekeningen in kleine lettertjes):

Programma voor het optellen van twee getallen

HomeProgramma's

EEN=5 We voeren de waarde 5 in variabele A in

B=8 aan variabele B de waarde 8

Subroutines toevoegen

nu is C gelijk aan 13

EEN=10 hetzelfde, alleen andere cijfers

B=25

Subroutines toevoegen

nu is C gelijk aan 35

Einde van het programma

Subroutine toevoeging

C=A+B

ReturnFromSubroutine we keren terug naar de plaats vanwaar we belden

EindeSubroutine

In dit voorbeeld hebben we de subroutine twee keer aangeroepen Toevoeging, waardoor er twee getallen aan werden toegevoegd die in variabelen werden doorgegeven A en B . Het resultaat wordt in de variabele C geplaatst. Wanneer een subroutine wordt aangeroepen, onthoudt de computer waar deze vandaan kwam, en wanneer de subroutine klaar is met draaien, keert de computer terug naar de plaats vanwaar deze werd aangeroepen. Dat. U kunt subroutines een onbepaald aantal keren oproepen, waar u ook bent.

Bij het uitvoeren van regel (8) van een Assembly-programma roepen we een subroutine aan (in dit geval een interrupt genoemd), die de regel op het scherm weergeeft. Hiervoor plaatsen we feitelijk de benodigde waarden in de registers. Alle noodzakelijke werkzaamheden(regeluitvoer, cursorbeweging) wordt door de subroutine overgenomen. Deze regel kun je als volgt lezen: roep de eenentwintigste interrupt aan ( int uit het Engels onderbreken onderbreken). Houd er rekening mee dat er na het cijfer 21 een letter staat H . Dit is, zoals we al weten, een hexadecimaal getal (33 in decimaal). Niets weerhoudt ons er uiteraard van om de lijn te vervangen van int 21u tot int 33. Het programma zal correct werken. Het is gebruikelijk in Assembler om het interruptnummer in hexadecimaal aan te geven.

In regel (10) noemen we, zoals je misschien al geraden hebt, interrupt 20 H . Om deze interrupt aan te roepen, hoeft u geen waarden in de registers op te geven. Het voert slechts één taak uit: het programma afsluiten (naar DOS gaan). Als gevolg van de uitvoering van interrupt 20h keert het programma terug naar waar het is gestart (geladen, aangeroepen). Bijvoorbeeld, binnen Norton Commander of DOS-navigator.

Regel (12) bevat het uit te voeren bericht. Eerste woord ( bericht bericht) berichttitel. Het kan van alles zijn (bijvoorbeeld puinhoop of touwtje, enz.). OVER Let op regel (7), waarin we in het register laden DX ons berichtadres.

We kunnen een andere lijn maken, die we zullen bellen Mess2. Voer vervolgens, beginnend vanaf regel (9), de volgende opdrachten in:

(10) mov dx, offset Mess2

(13) Bericht db "Hallo wereld!$"

(14) Mess2 db "Ik ben het! $"

en stel ons programma opnieuw samen. Ik hoop dat je kunt raden wat er gaat gebeuren

Let op het laatste teken in de regels Bericht en bericht2 - $. Het wijst naar het einde van de regel. Als we het verwijderen, dan 21 H de interrupt zal doorgaan met uitvoeren totdat hij ergens in het geheugen een teken tegenkomt $. Op het scherm zullen we het zien afval .

Als u een debugger heeft, kunt u zien hoe ons programma werkt.

Het doel van deze kwestie was niet om het te begrijpen gedetailleerd met elke operator. Dit is onmogelijk, omdat je hebt nog niet genoeg kennis. Ik geloof dat je na 3-4 releases het principe en de structuur van een Assembly-programma zult begrijpen. Misschien leek de Assemblee-taal je buitengewoon ingewikkeld, maar geloof me, dit is op het eerste gezicht zo.

Om getallen in een microprocessor weer te geven, wordt deze gebruikt binair getalsysteem.
Bovendien, eventuele digitaal signaal kan twee stabiele toestanden hebben: " hoog niveau" En " laag niveau" IN binair systeem notatie Om een ​​willekeurig getal weer te geven, worden respectievelijk twee cijfers gebruikt: 0 en 1. Willekeurig getal x=een n een n-1 ..a 1 een 0 ,a -1 een -2 …een -m wordt geschreven in een binair getalsysteem als

x = een n ·2 n +een n-1 ·2 n-1 +…+a 1 ·2 1 +a 0 ·2 0 +a -1 ·2 -1 +a -2 ·2 -2 +…+a -m ·2 -m

Waar een ik— binaire cijfers (0 of 1).

Octaal getalsysteem

In het octale getalsysteem zijn de basiscijfers de getallen van 0 tot en met 7. 8 lage cijfers worden gecombineerd tot een hoge orde.

Hexadecimaal getalsysteem

In het hexadecimale getalsysteem zijn de basiscijfers de getallen van 0 tot en met 15. Om basiscijfers groter dan 9 met één symbool aan te duiden, worden naast de Arabische cijfers 0...9 in het hexadecimale getalsysteem letters van het Latijnse alfabet gebruikt:

10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16.

Het getal 175 10 in het hexadecimale getalsysteem wordt bijvoorbeeld geschreven als AF 16. Echt,

10·16 1 +15·16 0 =160+15=175

De tabel toont getallen van 0 tot en met 16 in decimale, binaire, octale en hexadecimale getalsystemen.

Decimale Binair Octaal Hexadecimaal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Binair-octale en binair-hexadecimale conversies

Het binaire getalsysteem is gemakkelijk uit te voeren rekenkundige bewerkingen microprocessorhardware, maar is lastig voor de menselijke waarneming omdat dit vereist is grote hoeveelheid ontladingen. Daarom binnen computertechnologie Naast het binaire getalsysteem worden octale en hexadecimale getalsystemen veel gebruikt voor een compactere weergave van getallen.

Drie cijfers van het octale getalsysteem implementeren alles mogelijke combinaties octale cijfers in het binaire getalsysteem: van 0 (000) tot 7 (111). Om een ​​binair getal naar octaal te converteren, moet je de binaire cijfers combineren in groepen van 3 cijfers (drieklanken) in twee richtingen, te beginnen bij het decimaalteken. Indien nodig moet u onbeduidende nullen toevoegen aan de linkerkant van het oorspronkelijke getal. Als het nummer bevat fractioneel deel, dan kun je rechts ervan ook onbeduidende nullen toevoegen totdat alle drieklanken gevuld zijn. Elke drieklank wordt dan vervangen door een octaal cijfer.

Voorbeeld: Converteer het getal 1101110.01 2 naar een octaal getalsysteem.

We combineren binaire cijfers in drieklanken van rechts naar links. Wij krijgen

001 101 110,010 2 = 156,2 8 .

Om een ​​getal van octaal naar binair te converteren, moet je elk octaal cijfer in binaire code schrijven:

156,2 8 = 001 101 110,010 2 .

De vier cijfers van het hexadecimale getalsysteem implementeren alle mogelijke combinaties van hexadecimale cijfers in het binaire getalsysteem: van 0 (0000) tot F(1111). Om een ​​binair getal naar hexadecimaal te converteren, moet je de binaire cijfers combineren in groepen van 4 cijfers (tetrads) in twee richtingen, te beginnen bij het decimaalteken. Indien nodig moet u onbeduidende nullen toevoegen aan de linkerkant van het oorspronkelijke getal. Als het getal een fractioneel deel bevat, moet je rechts ervan ook onbeduidende nullen toevoegen totdat alle notitieboekjes gevuld zijn. Elke tetrad wordt vervolgens vervangen door een hexadecimaal cijfer.

Voorbeeld: Converteer het getal 1101110.11 2 naar een hexadecimaal getalsysteem.

We combineren binaire cijfers tot tetrads van rechts naar links. Wij krijgen

0110 1110.1100 2 = 6E,C 16 .

Om een ​​getal van hexadecimaal naar binair te converteren, moet u elk hexadecimaal cijfer in binaire code schrijven.

Hexadecimaal getalsysteem, is veruit het populairste middel voor compact opnemen binaire getallen. Zeer veel gebruikt bij de ontwikkeling en het ontwerp van digitale technologie.

Zoals de naam al doet vermoeden, is de basis van dit systeem het getal zestien 16 of in hexadecimaal 10 16. Om verwarring te voorkomen, zullen we bij het schrijven van getallen in andere getalsystemen dan decimalen de basis van het getalsysteem rechtsonder in het hoofdnummerrecord aangeven. Omdat de basis van het systeem het getal zestien is, betekent dit dat we zestien cijfers nodig hebben om de getallen weer te geven. De eerste tien cijfers zijn afkomstig uit het ons bekende decimale systeem (0,1,..,8,9) en er zijn ook zes letters van het Latijnse alfabet (a,b,c,d,e,f) aan toegevoegd. In het hexadecimale getal 3f7c2 zijn de letters "f" en "c" bijvoorbeeld hexadecimale cijfers.

Tellen in hexadecimaal is vergelijkbaar met tellen in decimaal. Laten we proberen getallen te tellen en te schrijven door ze samen te stellen uit de beschikbare zestien cijfers:

Nul - 0 ;
Een - 1 ;
Twee - 2 ;
...
en zo verder...
...
Acht - 8 ;
Negen - 9 ;
Tien - A;
Elf - B;
Twaalf - C;
Dertien - D;
Veertien - e;
Vijftien - F;

Wat nu te doen? Alle cijfers zijn verdwenen. Hoe het getal zestien weer te geven? Laten we hetzelfde doen als in het decimale systeem. Daar introduceerden we het concept van tien, hier introduceren we het concept van ‘zestien’ en zeggen dat zestien één ‘zestien’ is en nul eenheden. En dit kan al worden opgeschreven - "10 16".

Dus, Zestien - 10 16 (één "zestien", nul één)
Zeventien - 11 16 (één "zestien", één eenheid)
...
en zo verder...
...
Vijfentwintig - 19 16 (één "zestien", negen)
Zesentwintig - 1a 16 (één "zestien", tien eenheden)
Zevenentwintig - 1b 16 (één "zestien", elf)
...
en zo verder...
...
Dertig - 1e 16 (één "zestien", veertien)
Eenendertig - 1f 16 (één "zestien", vijftien)
Tweeëndertig - 20 16 (twee zestien, nul één)
Drieëndertig - 21 16 (twee zestien, één één)
...
en zo verder...
...
tweehonderdvijfenvijftig - ff 16 (vijftien bij "zestien", vijftien enen)

tweehonderdzesenvijftig - 100 16 (één "tweehonderdzesenvijftig", nul "zestien", nul één)
tweehonderdzevenvijftig - 101 16 (één "tweehonderdzesenvijftig", nul tot en met "zestien", één één)
tweehonderdachtenvijftig - 102 16 (één "Tweehonderdzesenvijftig", nul tot en met "zestien", twee enen)
...
en zo verder...
...

Telkens wanneer we de reeks cijfers hebben opgebruikt om het volgende getal weer te geven, voeren we grotere teleenheden in (dat wil zeggen tellen met “zestien”, “tweehonderdzesenvijftig”, enz.) en schrijven we het getal met een extensie van één cijfer. .

Denk aan het aantal 3e2c 16 geschreven in hexadecimaal getalsysteem. Daarover kunnen we zeggen dat het bevat: drie x vierduizend zesennegentig, “e” (veertien) x tweehonderdzesenvijftig, twee x zestien en “c” (twaalf). En u kunt de waarde ervan als volgt achterhalen via de cijfers die erin zijn opgenomen.

3e2c 16 = 3 *4096+14 *256+2 *16+12 *1, hier en onder het * (sterretje) betekent vermenigvuldiging.

Maar de reeks getallen 4096, 256, 16, 1 is niets meer dan gehele machten van het getal zestien (de grondtal van het getallensysteem) en kan daarom worden geschreven:

3e2c 16 = 3 *16 3 +14 *16 2 +2 *16 1 +12 *16 0

Hetzelfde geldt voor hexadecimale breuk ( fractioneel getal) Bijvoorbeeld: 0,5a2 16 daarover kunnen we zeggen dat het bevat: vijf zestienden, “a” (tien) tweehonderdzesenvijftig en twee vierduizendzesennegentig. En de waarde ervan kan als volgt worden berekend:

0,5a2 16 = 5 *(1/16) + 10 *(1/256) + 2 *(1/4096)

En hier is een reeks cijfers 1/16; 1/256 en 1/4096 zijn niets meer dan gehele machten van zestien en we kunnen ook schrijven:

0,5a2 16 = 5 *16 -1 + 10 *16 -2 + 2 *16 -3

Voor het gemengde getal 7b2.1f9 kunnen we op dezelfde manier schrijven:

7b2.1f9 = 7 *16 2 +11 *16 1 +2 *16 0 +1 *16 -1 +15 *16 -2 +9 *16 -3

Laten we de cijfers van het gehele deel van een hexadecimaal getal, van rechts naar links, nummeren als 0,1,2...n (de nummering begint vanaf nul!). En de cijfers van het gebroken deel, van links naar rechts, zoals -1,-2,-3...-m, dan kan de waarde van een bepaald hexadecimaal getal worden berekend met behulp van de formule:

N = d n 16 n +d n-1 16 n-1 +…+d 1 16 1 +d 0 16 0 +d -1 16 -1 +d -2 16 -2 +…+d -(m-1) 16 -(m-1) +d -m 16 -m

Waar: N- het aantal cijfers in het gehele deel van het getal min één;
M- het aantal cijfers in het fractionele deel van het getal
d ik- cijfer dat erin staat i-de rang

Deze formule wordt de formule genoemd voor de bitsgewijze uitbreiding van een hexadecimaal getal, d.w.z. getal geschreven in hexadecimaal getalsysteem. Als we het getal zestien in deze formule vervangen door een willekeurig getal Q, dan verkrijgen we de uitbreidingsformule voor het geschreven getal Qth nummersysteem, d.w.z. met basis Q:

N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q - (m-1) +d -m q -m

Met deze formule kunt u altijd de waarde berekenen van een getal dat in een getal is geschreven positioneel systeem basis notatie Q.

Andere nummersystemen vindt u op onze website via de volgende links.