Vad är ett nummersystem?

Talsystem definierar hur siffror representeras när de skrivs ned. Nummer skrivs ned som en samling av symboler, känd som siffror. Varje siffra används för att beteckna ett numeriskt bidrag till värdet på det totala antalet. Moderna nummersystem är positionerade och definieras kring ett basnummer (mindre vanligt kallat radix). Ett positionssystem innebär att bidraget beror på siffrans position inom nummersamlingen av siffror. Specifikt representerar varje siffra en multipel av basnumret höjt till en specifik effekt, ju längre vänster siffran placeras desto större är kraften. Basnumret definierar intervallet för möjliga värden som en siffra kan ta.

Det nummersystem som används i vardagen kallas decimaltalssystemet och baseras runt numret tio. Valet av tio korrelerar troligen med dess bekvämlighet för att räkna, den tidigaste användningen av siffror. Det matchar också det faktum att vi var och en har tio fingrar (som också kan kallas siffror).

Datorer lagrar nummer som binär data. När man diskuterar datorberäkningar är det därför viktigt att representera siffror i det binära nummersystemet, som använder två som bas. Det hexadecimala nummersystemet, som använder sexton som bas, är ett annat vanligt nummersystem för analys av datordata. Hexadecimal gör att binära nummer kan representeras på ett mer kortfattat och läsbart sätt.

Decimal (Base-10)

Räckvidden för siffror som är tillåtna med decimal (även kallad förnekelse) är 0, 1, 2, 3, 4, 5, 6, 7, 8 och 9. Detta följer av en mer allmän princip, den tillåtna uppsättningen siffror för ett bas-N-system är siffrorna från 0 till N-1.

Exemplet nedan visar hur siffrorna i siffran 3265 representerar bidrag som summerar mot antalet: tre partier av 1000 plus två partier av 100 plus 6 partier av 10 och 5 partier av 1.

En uppdelning av vad förnektsrepresentationen av 3265 faktiskt betyder. Varje siffra motsvarar en effekt på tio (ökar från höger till vänster). Numret ges sedan genom att summera dessa bidrag tillsammans.

Eventuella siffror som placeras efter decimalpunkten följer mönstret för tio som minskar. Negativa krafter på tio gör det möjligt att representera bråknummer.

En fördelning av vad förnektsrepresentationen av 0, 156 faktiskt betyder.

Binär (Base-2)

Binära siffror har bara två siffror, antingen 0 eller 1. Den minsta biten data lagrad av en dator kallas lite, förkortning för binärsiffra. Datorer är byggda för att lagra data i bitar eftersom de bara kräver två distinkta tillstånd, detta är enkelt att bygga och gör att data kan vara robusta för störningar från elektriskt brus.

En fördelning av den binära representationen av elva. Observera att mönstret är detsamma som tidigare visats för decimaltal, men med basen växlad till två. Basen som används för att representera ett nummer kan indikeras med hjälp av ett abonnemang.

Hexadecimal (Base-16)

Bitar är de grundläggande datordata men det är vanligare att tänka på data i termer av byte, där en byte är en grupp med åtta bitar. Hexadecimal används ofta eftersom det gör att en byte kan representeras med bara två siffror. Detta gör att långa binära nummer kan reduceras till en mycket mer kompakt form.

Hexadecimal tillåter siffror som är tio eller större, detta kan vara mycket förvirrande när det skrivs ned. Vanligtvis används tecknen AF som ersättning för siffrorna tio till femton. Därför är intervallet för möjliga hexadecimala siffror 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E och F.

DecimalBinärhexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010EN
111011B
121100C
131101D
141110E
151111F
Hexadecimala representationer av en nibble. En nibble är fyra bitar, som är en halv byte och kan representeras av en enda hexadecimal siffra.

omvandlingar

Hur man konverterar från decimal till binär

  1. Skriv ner resten från att dela det aktuella antalet med två, detta är den första biten.
  2. Dra bort den ovannämnda återstoden från det aktuella numret och dela sedan med två.
  3. Upprepa steg 1 och 2 tills det aktuella numret har reducerats till noll. Varje ny bit ska placeras till vänster om de aktuella bitarna.
Ett exempel på att följa stegen för att konvertera antalet tretton till dess binära representation.

Hur man konverterar från decimal till hexadecimal

Processen är nästan identisk med konverteringen till binär, med undantag för byte av bas från två till sexton.

  1. Skriv ner resten från att dela det aktuella numret med sexton, detta är den första siffran.
  2. Dra bort ovannämnda återstående från det aktuella numret och dela sedan med sexton.
  3. Upprepa steg 1 och 2 tills det aktuella numret har reducerats till noll. Varje ny siffra ska placeras till vänster om de aktuella siffrorna.

Hur konverterar man från binärt till hexadecimalt

  1. Dela upp det binära talet i grupper om fyra bitar (från höger).
  2. Lägg till ledande nollor om den vänstra gruppen innehåller mindre än fyra bitar.
  3. Konvertera varje grupp av bitar till en hexadecimal siffra. Detta kan bearbetas för hand men det är snabbare att helt enkelt slå upp detta i ett bord.

Hur man konverterar från hexadecimal till binär

  1. Konvertera varje siffra till en grupp med fyra bitar, detta görs enkelt genom att slå upp det i ett bord eller så kan det konverteras för hand.
  2. Ta bort alla ledande nollor.

Binär tillägg och subtraktion

Binär tillägg och subtraktion är ganska enkla, de följer samma typ av regler som att lägga till förnekningssiffror men det finns mindre möjliga kombinationer av siffror. Siffrorna från siffrorna läggs till tillsammans med början från den högsta siffran. Att lägga till en kombination av nollor och ena är enkelt. Att lägga till två sådana ger noll men en måste överföras till nästa bit. Det speciella fallet för subtraktion är att subtrahera en från noll, detta ger en men en måste också lånas från nästa bit.

Tabellerna för tillägg och subtraktion av två binära siffror.

Två komplement

Hur lagras negativa nummer av datorn när den bara kan använda 0 och 1? Tos komplement är den vanligaste tekniken för att representera negativa tal i binär. I två komplement, indikerar den första biten som är noll att antalet är positivt eller om det är detta indikerar antalet är negativt, resten av bitarna används sedan för att lagra det numeriska värdet.

Detta är stegen för att konvertera ett negativt tal till binärt med två komplement:

  1. Konvertera det positiva ekvivalentet till antalet till binärt.
  2. Lägg till en noll på framsidan av det binära talet (indikerar att det är positivt).
  3. Invertera alla bitar, dvs byt ut dem med nollor och vice versa ..
  4. Lägg till en i resultatet.

Och detta är stegen för att konvertera från två komplement till ett förnekande nummer:

  1. Kontrollera värdet på skyltbiten. Om det är positivt kan numret konverteras som ett vanligt binärt nummer.
  2. Om det är negativt, börja med att invertera alla bitarna.
  3. Lägg till en i resultatet.
  4. Konvertera nu resultatet till förnekande, detta ger värdet på det negativa antalet.

Fasta punktnummer

Hur representeras bråknummer i binär? Vi kan komma överens om en fast position i våra binära siffror där vi föreställer oss att en decimalpunkt placeras. Efter decimalpunkten kommer vi att ha bidrag på 1/2, 1/4 osv.

Hur konverterar jag en bråk till binär fast punkt:

  1. Multiplicera det aktuella talet med två, skriv ner siffran framför decimalpunkten (det måste vara noll eller en). Detta är den första biten efter den hypotetiska decimalpunkten.
  2. Dra en från det aktuella talet om det är större än eller lika med ett.
  3. Upprepa steg 1 och 2 tills det aktuella numret når noll. Varje ny bit ska placeras till höger om de aktuella bitarna.

Fast punkt tillåter endast ett begränsat antal nummer att representeras, eftersom att skriva ut heltalvärdet och sedan bråkvärdet för långa nummer kan kräva ett mycket stort antal bitar.

Flytande punktnummer

Flytande punkt används oftare eftersom det gör att ett större intervall av värden kan uttryckas eftersom decimalpunktens placering inte är fixerad och får flyta runt. För att göra detta uttrycks antalet med tre delar: en teckenbit, en mantissa och en exponent. Exponenten definierar var decimalpunkten ska placeras inom mantissen. Detta är mycket likt hur -330 i decimaler kan uttryckas som -3, 3 x 10 2 . Det finns två nivåer av flytande punktprecision:

  • Enkel precision, även känd som float, som använder en total bredd på 32 bitar. En flottör består av en skyltbit, 8 bitar för exponenten och 23 bitar för mantissen.
  • Dubbel precision, även känd som dubbel, som använder en total bredd på 64 bitar. En dubbel består av en teckenbit, 11 bitar för exponenten och 52 bitar för mantissen.

Låter fördelningen av delarna enligt specifikationen med en enda precision:

Sign bit - Detta är noll för ett positivt nummer och ett för ett negativt nummer.

Exponent - Exponenten kan ta valfritt värde mellan -127 och 128. För att låta både positiva och negativa nummer lagras läggs en förspänning till 127 till. Om vi ​​till exempel har en exponent på 5 kommer 132 att lagras i exponentbitarna. Siffrorna -127 (alla nollor) och 128 (alla) är reserverade för specialfall.

Mantissa - Eftersom binär bara tillåter en siffra som inte är noll, kan vi ignorera lagring av den första biten och alltid anta att det finns en före decimalpunkten. Till exempel representerar en lagrad mantissa på 011 faktiskt en mantissa på 1, 011.

En exponent för alla nollor eller alla indikerar ett specialfall:

  • Denormaliserade värden, om exponenten är alla nollor är antalet denormaliserat. I stället för att anta en som leder decimalpunkten har vi noll ledning istället. Detta tillåter mycket små värden, inklusive positiv eller negativ noll.
  • Oändlighet, antingen positiv eller negativ, representeras av en exponent för alla och en mantissa av alla nollor.
  • NAN (inte ett tal), representeras av en exponent för alla och mantisan är en kombination av nollor och enor, med mönstret för mantissen som indikerar typen av fel.

Hur man konverterar denary till flytande punkt:

  1. Ställ in teckenbiten baserat på om antalet är positivt eller negativt.
  2. Konvertera heltal och bråkdelar av numret separat och koppla dem ihop med en binär punkt.
  3. Räkna ut exponenten genom att titta på antalet siffror som punkten behöver flytta förbi för att placeras efter den första siffran (att flytta åt vänster är positivt och höger är negativt). Lägg till exponentbias (specificerad av standarden som används) till detta värde och konvertera till binär för att ge exponenten som ska lagras.
  4. Ta bort den ledande från mantissen.
  5. Mantissen och exponenten bör sedan reduceras till den längd som anges av standarden och lagras som ett långt binärt nummer med teckensiffran som leder dem.