Du och jag växte upp att räkna från en till tio. Datorer räknas dock lite annorlunda. De använder ett annat numeriskt system, kallat binärt, för att hålla reda på data. Men vad betyder det och vad är meningen med allt?

Hur räknar vi?

Alla de största talsystemen i världen är "positionella". Det betyder att värdet av ett tal bestäms av var i numret det visas. Vi kallar detta "plats" -värdet, och det hjälper till att bestämma storleken på ett nummer. Till exempel är decimalsystemet vi alla bekanta med användningsområden, tiotals, hundratals och tusen platser för att ange hur mycket en enda "2" är värd. Om "2" finns på hundratalsplatsen (som i "200"), är dess värde högre än samma 2 på samma plats (som i "2").

Det var dock inte alltid så här. Detta sätt att representera värde är en något modern uppfinning. Det kräver att noll används som platshållare, och noll uppfanns bara för cirka 4000 år sedan. Därför använder äldre talsystem som romerska siffror och egyptiska hieroglyfer inte plats. I stället lägger du till värdet på alla "siffrorna" för att komma fram till slutvärdet.

Med hjälp av detta grundläggande koncept med positionsvärde har vi skapat olika numeriska system eller sätt att skriva siffror. Numerala system är namngivna för antalet inkrement per plats. När vi säger stegvis menar vi hur många gånger du kan öka värdet på en enda plats innan du "bär" det värdet till nästa plats. Till exempel kan vi i bas-tio inkrementera dem placera nio gånger, med tio olika siffror (räknande noll), innan vi måste bära sitt värde över till den där platsen.

Skillnad mellan decimal, binär och hexadecimal

Som barn lärde du dig räkna med dina fingrar. Tio fingrar, tio siffror. Att räkna mer än tio kan du hålla ner ett finger medan du räknar med de andra. Detta är grunden för bas-tio- eller decimalsystemet. Det är det nummersystem du använder varje dag, och det är grunden till de flesta människors förståelse för den numeriska världen.

Datorer kan dock inte använda bas-tio. Hårdvaran som krävs för att representera ett bas-tio-värde på hårdvarumnivån är enormt komplex. Istället använder datorer binära eller bas-två för att räkna. I binär finns det bara två siffror: en och noll. Varje "plats" har också olika värden. Den lägsta platsen är de, då två, fyra, åttor, sixteens och så vidare. Värdet på varje plats är två gånger värdet av föregående plats. För att utvärdera ett binärt tal är decimalekvivalent multiplicera varje nummer med sitt platsvärde och lägg alla resultat tillsammans. Detta är faktiskt samma sak du gör när du utvärderar ett bas-tio nummer, men du gör det så snabbt du förbiser processen.

Hexadecimal skiljer sig från binär och decimal. Det använder bas-sexton, vilket betyder att det finns sexton olika siffror som kan visas på en enda plats. Eftersom vi bara har tio siffror i vårt delade språk använder vi de första sex latinska bokstäverna (A, B, C, D, E, F) för att ange siffror 10 till 15. Du kanske känner igen det här formatet från färgkoder som används i webbdesign . När den används i databehandling, är den ofta prefixad med 0x att indikera att följande sträng ska tolkas som ett hexadecimalt tal. Varje platsvärde är sexton gånger större än det föregående platsvärdet, med början på den platsen.

Slutsats: Varför använda olika numeriska system?

Det skulle säkert vara bekvämt om vi kunde använda ett numeriskt system för allting. Tyvärr har varje numeriskt system sin egen syfte, så vi fastar med mer än en.

Decimal är den mest kända för mänskliga operatörer, och det delas av nästan alla kulturer på jorden. Det gör det till standardräkningssystemet för mänsklig kommunikation. Ingen överraskning där.

Datorer kan dock inte räknas i decimal. Deras kretsar kan bara representera ett av två tillstånd: PÅ eller AV. Det gör dem till en naturlig passform för binär, som har två tillstånd: en och noll. Noll representerar naturligtvis av, medan man representerar.

Hexadecimal är mer av ett kantfall. Den används främst som ett bekvämt sätt att representera binära värden för mänskliga operatörer. Ett enda platsvärde i hexadecimalt representerar fyra bitar minne. Det betyder att två platser representerar åtta bitar, eller en byte. Därför ser du hexadecimal som används för att representera värdet av minnesregistren. Bitstorleken gör det till en naturlig passform, och det är lättare att läsa än en sträng av sådana och nollor.