Hexadecimala talsystemet | talsystem bestående av 16 symboler (bas 16)
Det hexadecimala talsystemet, ofta förkortat till "hex", är ett talsystem som består av 16 symboler (bas 16). Standardnummersystemet kallas decimaltal (bas 10) och använder tio symboler: 0,1,2,3,4,5,6,7,8,9. Hexadecimaltal använder decimaltalen och sex extra symboler. Det finns inga numeriska symboler som representerar värden större än nio, så bokstäver från det engelska alfabetet används, närmare bestämt A, B, C, D, E och F. Hexadecimalt A = decimal 10 och hexadecimalt F = decimal 15.
Människor använder oftast decimalsystemet (bas 10) där varje siffra kan ha ett av tio värden mellan noll och tio. Detta beror förmodligen på att människor har tio fingrar på sina händer. Datorer representerar vanligtvis siffror i binärt system (bas 2). I binärsystemet kallas varje "binär siffra" för en bit och kan bara ha ett av två värden: ett eller noll. Eftersom de två möjliga värdena i en enda bit motsvarar en femtedel av den information som kan förmedlas av en decimalsiffras tio möjliga värden, kan binära representationer av heltal kräva många fler (binära) bitar än decimalsiffror.
Till exempel kräver det tresiffriga decimalvärdet 219 åtta bitar för att representeras i binär form (11011011). Människor tycker att det är besvärligt att läsa, komma ihåg och skriva långa strängar av bitar. Hexadecimalt kan grupper av fyra bitar lättare representeras av en enda "hex" siffra, så det binära värdet 11011011 med åtta bitar kräver endast två hexadecimala siffror "DB".
Datorminnet är organiserat som en matris av strängar av bitar som kallas bytes. På moderna datorer innehåller varje byte i allmänhet åtta bitar, vilket kan representeras som två hexadecimala siffror. Ingenjörer och datavetare hänvisar ofta till vart och ett av dessa fyra bitars värde som en nibble (ibland stavat nybble, se datorjargong).
För att undvika förvirring med decimala, oktala eller andra siffersystem skrivs hexadecimala tal ibland med ett "h" efter eller "0x" före talet. Till exempel 63h och 0x63 betyder 63 hexadecimalt.
Historia
Till skillnad från moderna datorer hade många av de tidiga datorerna sex bitars bytes. Programmerare av dessa system använde vanligtvis ett alternativt bitgrupperingsschema som kallas oktal. Varje oktalsiffra representerar effektivt tre bitar, och en sexbits byte kan representeras som två oktalsiffror. Tre bitar, som var och en är på eller av, kan representera de åtta siffrorna från 0 till 7: 000 = 0, 001 = 1, 010 = 2, 011 = 3, 100 = 4, 101 = 5, 110 = 6 och 111 = 7.
Hexadecimala värden
Hexadecimaltal liknar oktaltalsystemet (bas 8) eftersom de båda systemen lätt kan jämföras med det binära talsystemet. Hexadecimaltal använder en binär kodning med fyra bitar. Detta innebär att varje siffra i hexadecimalt format är samma som fyra siffror i binärt format. Oktal använder ett binärt system med tre bitar.
I decimalsystemet är den första siffran ettans plats, nästa siffra till vänster är tioans plats, nästa siffra är hundraans plats osv. I hexadecimalsystemet kan varje siffra vara 16 värden, inte 10. Detta innebär att siffrorna har ettans plats, sextonans plats och nästa är 256ans plats. Så 1h = 1 decimal, 10h = 16 decimal och 100h = 256 i decimal.
Exempel på värden för hexadecimala tal omvandlade till binära, oktala och decimala tal.
|
Konvertering
Binärt till hexadecimalt
För att ändra ett tal från binär till hexameter används en grupperingsmetod. Det binära talet delas upp i grupper om fyra siffror med början från höger. Dessa grupper omvandlas sedan till hexadecimala siffror enligt diagrammet ovan för de hexadecimala siffrorna 0 till F. För att ändra från hexadecimaltal görs det omvända. De hexadecimala siffrorna ändras var och en till binärsiffror och grupperingen tas vanligtvis bort.
Binary | Grupperingar | Hex | |||
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
När antalet bitar i ett binärt tal inte är en multipel av 4 fylls det med nollor för att göra det. Exempel:
- binär 110 = 0110, vilket är 6 Hex.
- binär 010010 = 00010010, vilket är 12 Hex.
Hexadecimalt till decimaltal
Det finns två vanliga sätt att konvertera ett tal från hexadecimalt till decimaltal.
Den första metoden är vanligare när du konverterar den manuellt:
- Använd decimalvärdet för varje hexadecimal siffra. För 0-9 är det samma sak, men A = 10, B = 11, C = 12, D = 13, E = 14 och F = 15.
- Sammanställ de antal som konverterats i varje steg nedan.
- Börja med den minst signifikanta hexadecimala siffran. Det är siffran i den högra änden. Detta blir den första posten i en summa.
- Ta den näst minst signifikanta siffran. Den ligger bredvid siffran i den högra änden. Multiplicera siffrans decimalvärde med 16. Lägg till detta till summan.
- Gör samma sak med den tredje minst signifikanta siffran, men multiplicera den med 162 (dvs. 16 i kvadrat eller 256). Lägg till den till summan.
- Fortsätt för varje siffra och multiplicera varje plats med en annan 16:e potens (4096, 65536 osv.).
| Plats | |||||
6 | 5 | 4 | 3 | 2 | 1 | |
Värde | 1048576 (165 ) | 65536 (164 ) | 4096 (163 ) | 256 (162 ) | 16(161 ) | 1 (160 ) |
Nästa metod är vanligare när du konverterar ett tal i en programvara. Den behöver inte veta hur många siffror talet har innan den börjar, och den multiplicerar aldrig med mer än 16, men den ser längre ut på papper.
- Använd decimalvärdet för varje hexadecimal siffra. För 0-9 är det samma sak, men A = 10, B = 11, C = 12, D = 13, E = 14 och F = 15.
- Sammanställ de antal som konverterats i varje steg nedan.
- Börja med den mest signifikanta siffran (siffran längst till vänster). Detta är den första siffran i summan.
- Om det finns ytterligare en siffra multiplicerar du summan med 16 och lägger till decimalvärdet för nästa siffra.
- Upprepa ovanstående steg tills det inte finns några fler siffror.
Exempel: 5Fh och 3425h till decimal, metod 1
|
|
|
|
Exempel: 5Fh och 3425h till decimal, metod 2
|
|
|
|
Frågor och svar
F: Vad är det hexadecimala siffersystemet?
S: Det hexadecimala talsystemet är ett bas 16-nummersystem som består av 16 symboler.
F: Vilka är de tio symboler som används i decimalsystemet (bas 10)?
S: De tio symboler som används i decimalsystemet (bas 10) är 0,1,2,3,4,5,6,7,8 och 9.
F: Vilka sex extra symboler används i hexadecimalsystemet?
S: Hexadecimal använder bokstäver från det engelska alfabetet - A, B, C, D, E och F.
Fråga: Hur många bitar innehåller en enda byte i moderna datorer?
S: På moderna datorer innehåller varje byte i allmänhet åtta bitar.
F: Vad kallar ingenjörer och datavetare för fyrbitsvärden?
S: Ingenjörer och datavetare kallar fyrabitsvärden för nibbles (ibland stavat nybble).
F: Hur kan man undvika förvirring med andra nummersystem när man skriver hexadecimala tal?
S: För att undvika förvirring med andra siffersystem när man skriver hexadecimala tal kan man lägga till ett "h" efter eller "0x" före talet. Till exempel 63h eller 0x63 betyder 63 hexadecimaltal.