De basis van het hexadecimale getalsysteem is. Geïllustreerde tutorial over digitale afbeeldingen

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. Met behulp van zestien verschillende symbolen is het dus mogelijk om alle informatie te 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 vindt plaats in foutcodes van softwareproducten, bijvoorbeeld een 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 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 de werking van alle digitale technologie is gebaseerd. Alle informatie op een computer, of het nu een muziekbestand of een tekstdocument is, wordt na vertaling weergegeven door een reeks binaire broncodes, en het is handiger om deze weer te geven in hexadecimale symbolen.

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

Dankzij de mogelijkheid om een ​​programma in hexadecimale code te bekijken, kunt u fouten in het programma opsporen en wijzigingen aanbrengen, en aanvallers gebruiken deze aanpak om programma's te hacken.

Iedereen die communiceert met een computer of andere digitale apparatuur is mysterieuze vermeldingen tegengekomen, zoals 10FEF, die voor niet-ingewijden een soort code lijken. Wat gaat er schuil achter deze symbolen? Het blijken slechts cijfers te zijn. Degenen die hexadecimaal gebruiken

Nummersystemen

Elk schoolkind weet, of heeft in ieder geval ergens gehoord, dat alle getallen die we gewoonlijk gebruiken, deze naam dragen, simpelweg omdat er maar tien verschillende symbolen in voorkomen (van 0 tot 9). Met hun hulp kan elk nummer in ons gebruikelijke systeem worden geschreven. Het blijkt echter dat het niet altijd handig is om het te gebruiken. Bij het uitwisselen van informatie tussen digitale apparaten is het bijvoorbeeld het gemakkelijkst om een ​​nummersysteem te gebruiken waarin er slechts twee cijfers zijn: "0" - geen signaal - of "1" - er is een signaal (spanning of iets anders). Het heet binair. Om echter de processen in dergelijke apparaten te beschrijven die er gebruik van maken, zul je aantekeningen moeten maken die te lang en moeilijk te begrijpen zijn. Daarom werd het hexadecimale getalsysteem uitgevonden.

Het concept van hexadecimaal systeem

Hoe komt het dat digitale apparaten een systeem gebruiken dat zestien verschillende symbolen bevat? Zoals u weet, wordt informatie in computers verzonden in de vorm van bytes, die meestal 8 bits bevatten. Een gegevenseenheid - een machinewoord - omvat 2 bytes, dat wil zeggen 16 bits. Met behulp van zestien verschillende symbolen is het dus mogelijk om de informatie te beschrijven die het kleinste deeltje in de uitwisseling is. Het hexadecimale getallensysteem omvat onze gebruikelijke cijfers (uiteraard van 0 tot 9), evenals de eerste letters (A, B, C, D, E, F). Met behulp van deze symbolen is het gebruikelijk om elke informatie-eenheid op te schrijven. U kunt er alle rekenkundige bewerkingen mee uitvoeren. Dat wil zeggen: optellen, aftrekken, vermenigvuldigen, delen. Het resultaat is ook een hexadecimaal getal.

Waar wordt het gebruikt?

Het hexadecimale systeem wordt gebruikt om foutcodes vast te leggen. Ze kunnen optreden tijdens de werking van verschillende softwareproducten. Dit is bijvoorbeeld hoe fouten in het besturingssysteem worden gecodeerd. Elk nummer is standaard. Welke fout er tijdens het werkproces precies is opgetreden, kunt u achterhalen door deze aan de hand van de instructies te ontcijferen. Dergelijke symbolen worden ook gebruikt bij het schrijven van programma's in talen op een laag niveau, zoals assembly. Het hexadecimale getalsysteem is ook geliefd bij programmeurs omdat de componenten ervan heel gemakkelijk kunnen worden omgezet naar binair getal, dat ‘native’ is voor alle digitale technologie. Deze symbolen worden ook gebruikt om kleurenschema's te beschrijven. Bovendien worden absoluut alle bestanden op de computer (tekst, afbeeldingen en zelfs muziek of video) na uitzending als een reeks gepresenteerd. Het is het handigst om de bron in de vorm van hexadecimale tekens te bekijken.

Natuurlijk kan elk getal in verschillende getalsystemen worden geschreven. Deze zijn decimaal, binair en hexadecimaal. Om een ​​woord van het ene woord naar het andere te vertalen, moet u een dienst zoals een nummersysteemvertaler gebruiken, of dit zelf doen met behulp van een specifiek algoritme.

Om getallen in een microprocessor weer te geven, wordt deze gebruikt binair getalsysteem.
In dit geval kan elk digitaal signaal twee stabiele toestanden hebben: “hoog niveau” en “laag niveau”. In het binaire getalsysteem worden twee cijfers gebruikt om elk getal weer te geven, respectievelijk: 0 en 1. Willekeurig getal x=een n een n-1 ..a 1 een 0 ,a -1 een -2 …a -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 handig voor het uitvoeren van rekenkundige bewerkingen met behulp van microprocessorhardware, maar is lastig voor de menselijke waarneming omdat het een groot aantal cijfers vereist. Daarom worden in de computertechnologie, naast het binaire getalsysteem, octale en hexadecimale getalsystemen op grote schaal gebruikt voor een compactere weergave van getallen.

De drie cijfers van het octale getalsysteem implementeren alle mogelijke combinaties van 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 een getal een gebroken deel bevat, 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, beginnend 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(ook bekend als hexadecimale code) is een positioneel getalsysteem met een geheel getalgrondtal van 16. De term hex (uitgesproken als hex, een afkorting van het Engelse hexadecimaal) wordt soms ook in de literatuur gebruikt. De cijfers van dit cijfersysteem worden meestal gebruikt in de Arabische cijfers 0-9, evenals in de eerste tekens van het Latijnse alfabet A-F. De letters komen overeen met de volgende decimale waarden:

  • * EEN-10;
  • *B-11;
  • *C-12;
  • *D-13;
  • *E-14;
  • * F-15.

Tien Arabische cijfers, gekoppeld aan zes Latijnse letters, vormen dus de zestien cijfers van het systeem.

Overigens kunt u op onze website elke tekst omzetten in decimale, hexadecimale, binaire code met behulp van de Online Code Calculator.

Sollicitatie. Hex-code veel gebruikt in programmeren op laag niveau en in verschillende computerreferentiedocumenten. De populariteit van het systeem wordt gerechtvaardigd door de architecturale oplossingen van moderne computers: ze hebben een byte (bestaande uit acht bits) als de minimale informatie-eenheid - en de waarde van een byte wordt handig geschreven met behulp van twee hexadecimale cijfers. De bytewaarde kan variëren van #00 tot #FF (0 tot 255 in decimale notatie) - met andere woorden, met hexadecimale code, kunt u elke status van de byte schrijven, terwijl er geen “extra” cijfers zijn die niet in de opname worden gebruikt.

Gecodeerd Unicode Er worden vier hexadecimale cijfers gebruikt om het tekennummer vast te leggen. De RGB-kleurnotatie (Rood, Groen, Blauw) maakt ook vaak gebruik van hexadecimale code (#FF0000 is bijvoorbeeld een helderrode kleurnotatie).

Een methode voor het schrijven van hexadecimale code.

Wiskundige manier van schrijven. In wiskundige notatie wordt de basis van het systeem in decimale vorm geschreven als een subscript rechts van het getal. De decimale notatie van het getal 3032 kan worden geschreven als 3032 10, in het hexadecimale systeem zal dit getal de notatie BD8 16 hebben.

In de syntaxis van programmeertalen. De syntaxis van verschillende programmeertalen stelt het formaat voor het schrijven van een getal op verschillende manieren in hexadecimale code:

* De syntaxis van sommige varianten van assembleertaal gebruikt de Latijnse letter “h”, die rechts van het getal wordt geplaatst, bijvoorbeeld: 20Dh. Begint een getal met een Latijnse letter, dan wordt er een nul voor geplaatst, bijvoorbeeld: 0A0Bh. Dit wordt gedaan om waarden te onderscheiden met behulp van constanten van constanten. hexadecimale code;

* Andere soorten assembler, evenals Pascal (en zijn varianten zoals Delphi) en enkele Basic-dialecten, gebruiken het voorvoegsel "$": $A15;

* In de HTML-opmaaktaal, evenals in trapsgewijze CSS-bestanden, wordt het voorvoegsel “#” gebruikt om een ​​kleur in RGB-indeling met een hexadecimale notatie op te geven: #00DC00.

Hoe hexadecimale code naar een ander systeem converteren?

Converteren van hexadecimaal naar decimaal. Om een ​​conversie van het hexadecimale systeem naar het decimale systeem uit te voeren, moet u het oorspronkelijke getal weergeven als de som van de producten van de cijfers in de cijfers van het hexadecimale getal en de macht van het grondtal.

Binaire SS

hex SS

U moet bijvoorbeeld het hexadecimale getal A14 vertalen: het heeft drie cijfers. Met behulp van de regel schrijven we het als een som van machten met een grondtal van 16:

A14 16 = 10,16 2 + 1,16 1 + 4,16 0 = 10,256 + 1,16 + 4,1 = 2560 + 16 + 4 = 2580 10

Getallen converteren van binair naar hexadecimaal en omgekeerd.

Voor de vertaling wordt een notitieboekjetafel gebruikt. Om een ​​getal van het binaire naar het decimale systeem om te zetten, moet u het van rechts naar links in afzonderlijke tetrads splitsen en vervolgens, met behulp van de tabel, elke tetrad vervangen door het overeenkomstige hexadecimale cijfer. Als het aantal cijfers bovendien geen veelvoud van vier is, is het noodzakelijk om het overeenkomstige aantal nullen rechts van het getal toe te voegen, zodat het totale aantal binaire cijfers een veelvoud van vier wordt.

Tabel met notitieboekjes voor vertaling.

Om van hexadecimaal naar binair te converteren, moet u de omgekeerde bewerking uitvoeren: vervang elk cijfer door een tetrad uit de tabel.

Binaire SS

Octale SS

Voorbeeld conversie van hexadecimaal naar binair: A5E 16 = 1010 0101 1110 = 101001011110 2

Voorbeeld conversie van binair naar hexadecimaal: 111100111 2 = 0001 1110 0111 = 1E7 16

In dit voorbeeld was het aantal cijfers in het oorspronkelijke binaire getal niet vier (9), dus werden er voorloopnullen toegevoegd voor een totaal aantal cijfers van 12.

Automatische vertaling. Een snelle conversie van het hexadecimale getalsysteem naar een van de drie populaire systemen (binair, octaal en decimaal), evenals de omgekeerde conversie, kunnen worden uitgevoerd met behulp van een standaardrekenmachine die bij Windows OS wordt geleverd. Open de rekenmachine, selecteer Beeld -> Programmeur in het menu. In deze modus kunt u het momenteel gebruikte nummersysteem instellen (zie menu aan de linkerkant: Hex, Dec, Oct, Bin). In dit geval levert het wijzigen van het huidige nummersysteem automatisch een vertaling op.

Hexadecimale notatie ("Hex")- een handige manier om binaire waarden weer te geven. Net zoals het decimale getallenstelsel een grondtal van tien heeft en het binaire getallenstelsel een grondtal van twee heeft, heeft het hexadecimale getallenstelsel een grondtal van zestien.

Het grondtalsysteem met grondtal 16 gebruikt de cijfers 0 tot en met 9 en de letters A tot en met F. De afbeelding toont de equivalente decimale, binaire en hexadecimale waarden voor de binaire getallen 0000 tot en met 1111. We vinden het gemakkelijker om een ​​waarde als één uit te drukken. hexadecimaal cijfer dan als vier bits

Bytes begrijpen

Gegeven dat 8 bits (bytes) de standaard binaire groepering is, kunnen de binaire getallen 00000000 tot 11111111 in hexadecimale notatie worden weergegeven als de getallen 00 tot FF. Er worden altijd voorloopnullen weergegeven om de 8-bits representatie te voltooien. De binaire waarde 0000 1010 in hexadecimaal zou bijvoorbeeld 0A zijn.

Vertegenwoordiging van hexadecimale waarden

Let op: Het is belangrijk om voor de tekens 0 tot en met 9 onderscheid te maken tussen hexadecimale waarden en decimale waarden, zoals weergegeven in de afbeelding.

Hexadecimale waarden worden in tekst meestal weergegeven door een waarde voorafgegaan door 0x (zoals 0x73), of door een subscript van 16 te gebruiken. Minder vaak worden ze gevolgd door de letter H, zoals 73H. Omdat subscripttekst echter niet wordt herkend op de opdrachtregel of in programmeeromgevingen, wordt deze in de technische weergave van hexadecimale getallen voorafgegaan door "0x" (nul X). Daarom worden de bovenstaande voorbeelden respectievelijk weergegeven als 0x0A en 0x73.

Hexadecimale notatie wordt gebruikt om Ethernet MAC-adressen en IP Versie 6-adressen weer te geven.

Hexadecimale conversies

Het omzetten van getallen tussen decimale en hexadecimale waarden is eenvoudig, maar snel delen of vermenigvuldigen door 16 is niet altijd handig. Als dergelijke conversies nodig zijn, is het meestal gemakkelijker om een ​​decimale of hexadecimale waarde naar binair getal te converteren en vervolgens de binaire waarde naar decimaal of hexadecimaal te converteren, afhankelijk van wat u wilt verkrijgen.

Met oefening is het mogelijk om de binaire bitpatronen te herkennen die overeenkomen met decimale en hexadecimale waarden. De figuur toont deze patronen voor enkele 8-bits waarden.