Hexadecimale talsystem | talsystem bestående af 16 symboler (base 16)
Det hexadecimale talsystem, ofte forkortet til "hex", er et talsystem bestående af 16 symboler (base 16). Standardtalsystemet kaldes decimaltal (base 10) og anvender ti symboler: 0,1,2,3,4,5,6,7,8,9. Hexadecimaltalsystemet anvender decimaltallene og seks ekstra symboler. Der findes ingen talsymboler, der repræsenterer værdier større end ni, så der anvendes bogstaver fra det engelske alfabet, nærmere bestemt A, B, C, D, E og F. Hexadecimaltal A = decimal 10, og hexadecimaltal F = decimal 15.
Mennesker bruger for det meste decimalsystemet (base 10), hvor hvert ciffer kan have en af ti værdier mellem nul og ti. Det skyldes sandsynligvis, at mennesker har ti fingre på deres hænder. Computere repræsenterer generelt tal i binært system (base 2). I binærsystemet kaldes hvert "binært ciffer" for en bit og kan kun have en af to værdier: 1 eller 0. Da en enkelt bit med to mulige værdier repræsenterer en femtedel af den information, som et decimalt tals ti mulige værdier kan give, kan binære repræsentationer af heltalsværdier kræve mange flere (binære) bits end decimale tal.
For eksempel kræver den trecifrede decimalværdi 219 otte bits for at blive repræsenteret i binær form (11011011). Mennesker finder det uhensigtsmæssigt at læse, huske og skrive lange strenge af bits. Hexadecimalt kan grupper af fire bits lettere repræsenteres ved hjælp af et enkelt "hex"-ciffer, så den otte bit store binære værdi 11011011 kræver kun to hexadecimale cifre "DB".
Computerhukommelse er organiseret som et array af bitstrenge kaldet bytes. På moderne computere indeholder hver byte normalt otte bits, som praktisk kan repræsenteres som to hexadecimale cifre. Ingeniører og dataloger betegner ofte hver af disse fire bitværdier som en nibble (undertiden stavet nybble, se computerjargon).
For at undgå forvirring med decimale, oktale eller andre talsystemer skrives hexadecimale tal nogle gange med et "h" efter eller "0x" foran tallet. F.eks. betyder 63h og 0x63 63 hexadecimalt.
Historie
I modsætning til moderne computere havde mange af de tidlige computere seks bit-bytes. Programmører af disse systemer brugte typisk et alternativt bitgrupperingsskema kaldet oktal. Hvert oktalciffer repræsenterer effektivt tre bits, og en seks-bit-byte kan repræsenteres som to oktalcifre. Tre bits, der hver især er tændt eller slukket, kan repræsentere de otte tal fra 0 til 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 og 111 = 7.
Hexadecimale værdier
Hexadecimalt talsystem ligner det oktale talsystem (base 8), fordi begge systemer let kan sammenlignes med det binære talsystem. Hexadecimaltal anvender en binær kodning på fire bit. Det betyder, at hvert ciffer i hexadecimalt tal er det samme som fire cifre i binært tal. Oktal anvender et binært system med tre bit.
I decimalsystemet er det første ciffer etteren, det næste ciffer til venstre er tieren, det næste er hundredepladsen osv. I hexadecimalt system kan hvert ciffer have 16 værdier, ikke 10. Det betyder, at cifrene har etteren, sekstenpladsen, og det næste ciffer er 256-pladsen. Så 1h = 1 decimal, 10h = 16 decimal, og 100h = 256 i decimal.
Eksempler på værdier af hexadecimale tal konverteret til binære, oktale og decimale tal.
|
Konvertering
Binær til hexadecimal
Ved at ændre et tal fra binært til hexametre anvendes en grupperingsmetode. Det binære tal opdeles i grupper af fire cifre, der starter fra højre. Disse grupper konverteres derefter til hexadecimale cifre som vist i skemaet ovenfor for de hexadecimale tal 0 til F. For at ændre fra hexadecimaltal gøres det omvendte. De hexadecimale cifre ændres hver især til binære, og grupperingen fjernes normalt.
Binær | Grupperinger | Hex | |||
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Når antallet af bits i et binært tal ikke er et multiplum af 4, fyldes det op med nuller for at gøre det til et multiplum af 4. Eksempler:
- binær 110 = 0110, hvilket er 6 Hex.
- binær 010010 = 0001001010, hvilket er 12 Hex.
Hexadecimalt til decimalt
Der er to almindelige måder at konvertere et tal fra hexadecimalt til decimaltal på.
Den første metode er mere almindelig, når du konverterer den manuelt:
- Brug decimalværdien for hvert hexadecimalt ciffer. For 0-9 er det det samme, men A = 10, B = 11, C = 12, D = 13, E = 14 og F = 15.
- Opfør en sum af de tal, der er konverteret i hvert trin nedenfor.
- Start med det mindst betydende hexadecimale ciffer. Det er det ciffer, der står i højre ende. Dette vil være det første element i en sum.
- Tag det næstmindste betydende ciffer. Det ligger ved siden af det tal, der står i højre ende. Multiplicer decimalværdien af cifferet med 16. Læg dette til summen.
- Gør det samme med det tredje mindst betydende ciffer, men gang det med 162 (dvs. 16 kvadreret eller 256). Læg det til summen.
- Fortsæt for hvert ciffer ved at gange hvert sted med en anden potens af 16. (4096, 65536 osv.)
| Placering | |||||
6 | 5 | 4 | 3 | 2 | 1 | |
Værdi | 1048576 (16 )5 | 65536 (16 )4 | 4096 (16 )3 | 256 (16 )2 | 16(16 )1 | 1 (16 )0 |
Den næste metode er mere almindelig, når du konverterer et tal i software. Den behøver ikke at vide, hvor mange cifre tallet har, før den starter, og den ganges aldrig med mere end 16, men den ser længere ud på papiret.
- Brug decimalværdien for hvert hexadecimalt ciffer. For 0-9 er det det samme, men A = 10, B = 11, C = 12, D = 13, E = 14 og F = 15.
- Opfør en sum af de tal, der er konverteret i hvert trin nedenfor.
- Start med det mest betydende ciffer (det ciffer, der står længst til venstre). Dette er det første led i summen.
- Hvis der findes et andet ciffer, ganges summen med 16 og tilføj decimalværdien for det næste ciffer.
- Gentag ovenstående trin, indtil der ikke er flere cifre.
Eksempel: 5Fh og 3425h til decimal, metode 1
|
|
|
|
Eksempel: 5Fh og 3425h til decimal, metode 2
|
|
|
|
Spørgsmål og svar
Q: Hvad er det hexadecimale talsystem?
A: Det hexadecimale talsystem er et base 16-talsystem, der består af 16 symboler.
Spørgsmål: Hvilke ti symboler anvendes i decimalsystemet (base 10)?
A: De ti symboler, der anvendes i decimalsystemet (base 10), er 0,1,2,3,4,4,5,6,7,8 og 9.
Sp: Hvilke seks ekstra symboler anvendes i hexadecimalt system?
Svar: Hexadecimaltal bruger bogstaver fra det engelske alfabet - A, B, C, D, E og F.
Spørgsmål: Hvor mange bits indeholder en enkelt byte på moderne computere?
A: På moderne computere indeholder hver byte normalt otte bits.
Spørgsmål: Hvad kalder ingeniører og dataloger firebitværdier?
Svar: Ingeniører og dataloger kalder firebitværdier for nibbles (undertiden stavet nybble).
Spørgsmål: Hvordan kan man undgå forvirring med andre talsystemer, når man skriver hexadecimale tal?
A: For at undgå forvirring med andre talsystemer, når man skriver hexadecimaltal, kan man tilføje et "h" efter eller "0x" foran tallet. F.eks. 63h eller 0x63 betyder 63 hexadecimaltal.