Hexadecimala talsystemet
Från Rilpedia
0hex | = | 0dec | = | 0oct | 0 | 0 | 0 | 0 | |||
1hex | = | 1dec | = | 1oct | 0 | 0 | 0 | L | |||
2hex | = | 2dec | = | 2oct | 0 | 0 | L | 0 | |||
3hex | = | 3dec | = | 3oct | 0 | 0 | L | L | |||
4hex | = | 4dec | = | 4oct | 0 | L | 0 | 0 | |||
5hex | = | 5dec | = | 5oct | 0 | L | 0 | L | |||
6hex | = | 6dec | = | 6oct | 0 | L | L | 0 | |||
7hex | = | 7dec | = | 7oct | 0 | L | L | L | |||
8hex | = | 8dec | = | 10oct | L | 0 | 0 | 0 | |||
9hex | = | 9dec | = | 11oct | L | 0 | 0 | L | |||
Ahex | = | 10dec | = | 12oct | L | 0 | L | 0 | |||
Bhex | = | 11dec | = | 13oct | L | 0 | L | L | |||
Chex | = | 12dec | = | 14oct | L | L | 0 | 0 | |||
Dhex | = | 13dec | = | 15oct | L | L | 0 | L | |||
Ehex | = | 14dec | = | 16oct | L | L | L | 0 | |||
Fhex | = | 15dec | = | 17oct | L | L | L | L | |||
Hexadecimala (sedecimal) talsystemet är ett talsystem med basen 1610. Talsystemet är ett positionssystem med siffrorna 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E och F där A motsvarar 1010, B motsvarar 1110, C motsvarar 1210, D motsvarar 1310, E motsvarar 1410 och F motsvarar 1510. Att räkna om talet D4 i sedecimal representation till decimal representation görs så här:
- D416 = 13·161 + 4·160 = 20810 + 410 = 21210
Det hexadecimala talsystemet används ofta av datorprogrammerare, eftersom det gör det enkelt att gruppera in heltal i enskilda byte, och är dessutom ganska lätt att konvertera till binära tal (datorers inbyggda talsystem) i huvudet. Eftersom en hexadecimal siffra alltid motsvaras av 4 bitar (en nibble), motsvarar två hexadecimala siffror en byte. Detta är speciellt behändigt vid hårdvarunära programmering, då enskilda bitar behöver manipuleras.
Det hexadecimala talsystemet används ofta även vid angivelse av färger i datorsammanhang, till exempel för webbfärger, det vill säga angivelser av RGB-färger i HTML-kod. Färgerna består här av tre kanaler (röd, grön och blå) på 8 bit var. Varje kanal kan alltså anta 10016 (d.v.s. 25610) olika värden. Totalt blir det 224 olika färger. När färgerna anges sedecimalt, blir exempelvis lila FF00FF16. Den röda och blåa kanalen är satt till max (FF16), och den gröna kanalen är av. Skulle man istället använda sig av det decimala talsystemet, skulle samma färg vara 1671193510, vilket uppenbarligen är mycket otydligare.
Det hexadecimala talsystemet används inom programmering eftersom det blir lättare för datorn att konvertera det till binära koder. När man programmerar med det hexadecimala talsystemet så använder man sig av talen 0-15 men istället för 0-15 så byter man ut 10-15 till bokstäver som i detta fallet byts ut mot A,B,C,D,E,F(10,11,12,13,14,15).
Position: 2 1 0
Talet: F F F= 15x162 + 15x161 + 15x160 = 15x162 + 15x161 + 15x1 = 4095
Och om du ska konvertera hexadecimala tal till binärkod så räknar du först ut det hexadecimala talet. I det här fallet så använder vi FA= 15x161 + 10x160= 15x16 + 10x1= 250 Alltså så ska du räkna ut det binära värdet av det decimal tal du har fått ut ifrån formeln ovanför vilket är 250 i detta fall. Vi antar att du redan kan binärkod.
Alltså ska du räkna ut vad 250 blir i binärt värde 128 64 32 16 8 4 2 1 1 1 1 1 1 0 1 0 Då 1 står för positivt och 0 står för negativt. Alternativt: På På På På På Av På Av
Då adderar du bara de värdena ovanför tillsammans som bildat talet 250.
När man vill konvertera ett hexadecimalt tal till ett binärt kan man även göra på följande vis: Om du har talet B3 i den hexadecimala talbasen till exempel så gör du så att du tar och konverterar ett hexadecimalt tecken i taget. Såhär alltså: B är som ni redan vet lika med 11 i den decimala talbasen. Då konverterar man helt enkelt 11 (decimalt) till 1011 (Binärt) Sedan tar man nästa tecken: 3. Och gör likadant: 3 hexadecimalt = 3 Decimalt. 3 (decimalt) blir till 0011 (binärt) Sedan lägger man bara ihop dem i samma ordning som de var från början. Alltså, talet B3 blir till 1011 0011. Där B är representerat av 1011 Och 3 av 0011. Det här sättet är aningen snabbare en det föregående nämnda.
Not
Trots den allmänna användningen är begreppet "hexadecimal" egentligen inkorrekt, då det blandar grekiska och latinska talnamn, till skillnad från det mer korrekta "sedecimal".