[ Avknoppat från tråd Använde vikingarna siffror? /Hex ]
Rent kuriöst och föga tidsmässigt (vikingatida, alltså), så används det hexadecamla räknesättet när man beskriver färger på webb-sidor. Då använder man siffrorna 0-9 och förtsätter därefter med bokstäverna a-f och får på det viset 16 "positioner". anledningen tilld ett lär vara att 16x16=256, vilket utgör antalet bits i en dator.
Hexadecimalt
- Markus Holst
- C Skalman
- Inlägg: 13574
- Blev medlem: 4 september 2006, 15:28
- Ort: Västergötland
- Kontakt:
Det här är en poäng med hexadecimala tal:
Datorer jobbar med bitar - ettor och nollor - och delar upp dem i bytes om åtta bitar vardera. (Det finns fler sätt att dela in dem men byten är den absolut vanligaste).
01011101 11001010 11000011
En gång i tiden innebar programmering att mata in sekvenser enl. ovan, i oändlighet. Problemen är flera - några uppenbara, andra inte. Hur göra det hela lite mänskligare?
Först delar vi upp bitarna i grupper om fyra:
0101 1101 1100 1010 1100 0011
Fyra binära bitar representar decimala (bas 10) värden 0-15; vi gör det hela hexadecimalt (bas 16) A = 10, B = 11, C = 12, D = 13, E = 14 och F = 15, så kan varje grupp representeras av ett enda tecken. Dessa låter sig memoreras utan större svårighet:
5 D C A C 3
5D CA C3! Betydligt enklare att hantera än sifferströmmen längst upp.Glasklart?
Dessutom: Ett tecken motsvarar alltid fyra bitar, två alltid åtta, fyra alltid sexton osv. Färgkoder på webben anges med sex tecken = 24 bitar. Uppdelat på tre färger ger det 8 bitar per färg, eller 256 nivåer. FF0099 kan med blotta ögat utläsas som "100 % rött, inget grönt alls, mittimellan på blått" = rödlila nyans.
Sen sätter man specialkoden "0x" först av allt så ser alla att det är hexadecimalt. 0x10 är alltså ett hexadecimalt "10" = decimalt 16.
Datorer jobbar med bitar - ettor och nollor - och delar upp dem i bytes om åtta bitar vardera. (Det finns fler sätt att dela in dem men byten är den absolut vanligaste).
01011101 11001010 11000011
En gång i tiden innebar programmering att mata in sekvenser enl. ovan, i oändlighet. Problemen är flera - några uppenbara, andra inte. Hur göra det hela lite mänskligare?
Först delar vi upp bitarna i grupper om fyra:
0101 1101 1100 1010 1100 0011
Fyra binära bitar representar decimala (bas 10) värden 0-15; vi gör det hela hexadecimalt (bas 16) A = 10, B = 11, C = 12, D = 13, E = 14 och F = 15, så kan varje grupp representeras av ett enda tecken. Dessa låter sig memoreras utan större svårighet:
5 D C A C 3
5D CA C3! Betydligt enklare att hantera än sifferströmmen längst upp.Glasklart?
Dessutom: Ett tecken motsvarar alltid fyra bitar, två alltid åtta, fyra alltid sexton osv. Färgkoder på webben anges med sex tecken = 24 bitar. Uppdelat på tre färger ger det 8 bitar per färg, eller 256 nivåer. FF0099 kan med blotta ögat utläsas som "100 % rött, inget grönt alls, mittimellan på blått" = rödlila nyans.
Sen sätter man specialkoden "0x" först av allt så ser alla att det är hexadecimalt. 0x10 är alltså ett hexadecimalt "10" = decimalt 16.
Jag kan till Hexmaters eminenta förklaring bara lägga till följande:
Att man använder hexadecimalt talsystem så mycket inom datorvärlden beror helt enkelt på att datorerna är digitala (eller binära om man så vill i detta fall) dvs. arbetar med 1 och 0 som Hexmaster sa. Detta gör alltså att de använder sig av det binära talsystemet, som har basen 2.
Den nära anslutningen till det hexadecimala talsystemet beror på att 16 är en jämn potens av 2 (2^4), vilket 10 inte är. Detta gör det väldigt lätt att översätta mellan binärt och hexadecimalt. Att 16 = 2^4 innebär att 4 binära siffror alltid motsvaras av 1 hexadecimalt (alltså 2^4 = 16^1). Med decimala tal blir det mycket krångligare eftersom 4 binära siffror motsvarar log10(16) siffror (ungefär 1.2 siffror).
Förutom färger som Hexmaster nämnde så gör detta allt mycket lättare vid användning av s.k. flaggor etc. i datorprogram, eller i övrigt när det gäller Boolesk algebra (AND, OR, EXOR etc.) på grund av att man lätt kan se vilka "bitar som är satta" (vilka binära siffror som är "1") etc.
Ähum, hoppas att jag inte krånglade till det nu...
Det finns 10 typer av människor: de som förstår binära tal och de som inte gör det.
Kunde inte låta bli att ta med ovanstående, som iofs inte är det minsta roligt om det vore hexadecimalt...
Att man använder hexadecimalt talsystem så mycket inom datorvärlden beror helt enkelt på att datorerna är digitala (eller binära om man så vill i detta fall) dvs. arbetar med 1 och 0 som Hexmaster sa. Detta gör alltså att de använder sig av det binära talsystemet, som har basen 2.
Den nära anslutningen till det hexadecimala talsystemet beror på att 16 är en jämn potens av 2 (2^4), vilket 10 inte är. Detta gör det väldigt lätt att översätta mellan binärt och hexadecimalt. Att 16 = 2^4 innebär att 4 binära siffror alltid motsvaras av 1 hexadecimalt (alltså 2^4 = 16^1). Med decimala tal blir det mycket krångligare eftersom 4 binära siffror motsvarar log10(16) siffror (ungefär 1.2 siffror).
Förutom färger som Hexmaster nämnde så gör detta allt mycket lättare vid användning av s.k. flaggor etc. i datorprogram, eller i övrigt när det gäller Boolesk algebra (AND, OR, EXOR etc.) på grund av att man lätt kan se vilka "bitar som är satta" (vilka binära siffror som är "1") etc.
Ähum, hoppas att jag inte krånglade till det nu...
Det finns 10 typer av människor: de som förstår binära tal och de som inte gör det.
Kunde inte låta bli att ta med ovanstående, som iofs inte är det minsta roligt om det vore hexadecimalt...