Hexadecimalt

Diskussioner kring teknikens utveckling genom tiderna och dess inverkan på vår historia.
Skriv svar
Användarvisningsbild
Markus Holst
C Skalman
Inlägg: 13574
Blev medlem: 4 september 2006, 15:28
Ort: Västergötland
Kontakt:

Hexadecimalt

Inlägg av Markus Holst » 11 september 2006, 14:29

[ 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.

Användarvisningsbild
Hexmaster
Saknad medlem †
Inlägg: 10194
Blev medlem: 12 juni 2004, 18:41
Ort: Tjörn
Kontakt:

Inlägg av Hexmaster » 11 september 2006, 15:46

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.

Användarvisningsbild
Osprey
Medlem
Inlägg: 386
Blev medlem: 8 oktober 2003, 19:18
Ort: Göteborg

Inlägg av Osprey » 11 september 2006, 23:39

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... :D

Användarvisningsbild
marcorc
Medlem
Inlägg: 176
Blev medlem: 27 maj 2004, 14:39
Ort: Göteborg
Kontakt:

Inlägg av marcorc » 13 september 2006, 11:04

Att en byte är just 8 bitar kommer så vitt jag kommer ihåg från den smått legendariska System/360 från IBM. Annars finns det ju ingen speciall anledning att hålla sig till just 8. Man skulle likväl kunna tänka sig 7, 12 eller 16 också...

Skriv svar