Vi människor är vana vid att använda de tio siffrorna från $\num{0}$ till $\num{9}$. Man talar om ett tiosystem eller decimalsystem. För datorer är det däremot enklare att arbeta med bara $\num{2}$ siffror: $\num{0}$ och $\num{1}$. Det motsvarar två tillstånd: till exempel avstängd och påslagen, ”transistor spärrad” och ”transistor ledande” eller också $\qty{0}{\volt}$ och $\qty{5}{\volt}$. Det ger ett binärt talsystem. Att räkna går likadant i alla talsystem (se tabell [ref:binaer_zahlensysteme]): man börjar på $\num{0}$ och räknar upp siffrorna. När siffrorna är slut börjar man om och skriver en $\num{1}$ framför varje tal. Därför kommer i decimalsystemet $\num{10}$ efter $\num{9}$. Siffran längst till höger har det värde den själv föreställer. Det kallas positionsvärdet $\num{1}$. --- I decimalsystemet är den andra siffran från höger tio gånger så mycket värd som den själv, har alltså positionsvärdet $\num{10}$. Varje position längre åt vänster är tio gånger så mycket värd som den till höger om den. Till exempel betyder decimaltalet $\num{5573}$ i tabell [ref:binaer_stellenwert_dezimal] egentligen $5 \cdot 1000 + 5 \cdot 100 + 7 \cdot 10 + 3 \cdot 1$. |c: |c: |c: |c: | |$\num{1000}$ | $\num{100}$ | $\num{10}$ | $\num{1}$ | | $\num{5}$ | $\num{5}$ | $\num{7}$ | $\num{3}$ | [table:binaer_stellenwert_dezimal:Positionsvärden för det fyrsiffriga decimaltalet $\num{5573}$] |r: Decimalt | r: Binärt | | $\num{0}$ | $\num{0}$ | | $\num{1}$ | $\num{1}$ | | $\num{2}$ | $\num{10}$ | | $\num{3}$ | $\num{11}$ | | $\num{4}$ | $\num{100}$ | | $\num{5}$ | $\num{101}$ | | $\num{6}$ | $\num{110}$ | | $\num{7}$ | $\num{111}$ | | $\num{8}$ | $\num{1000}$ | | $\num{9}$ | $\num{1001}$ | | $\num{10}$ | $\num{1010}$ | | $\num{11}$ | $\num{1011}$ | | $\num{12}$ | $\num{1100}$ | | $\num{13}$ | $\num{1101}$ | | $\num{14}$ | $\num{1110}$ | | $\num{15}$ | $\num{1111}$ | [table:binaer_zahlensysteme:Tal i decimal- och binärsystemet] I binärsystemet finns bara två siffror, nämligen $\num{0}$ och $\num{1}$. Som framgår av tabell [ref:binar_stellenwert_dual] har den första positionen från höger positionsvärdet $\num{1}$, den andra $\num{2}$, den tredje $\num{4}$, den fjärde $\num{8}$ och så vidare. Positionsvärdena fördubblas i stället för att tiodubblas, eftersom det bara finns två siffror och inte tio. En position i binärsystemet kallas också bit ($\unit{\bit}$). |c: |c: |c: |c: |c: |c: |c: |c: | | $\num{128}$ | $\num{64}$ | $\num{32}$ | $\num{16}$ | $\num{8}$ | $\num{4}$ | $\num{2}$ | $\num{1}$ | | $\num{1}$ | $\num{0}$ | $\num{0}$ | $\num{0}$ | $\num{1}$ | $\num{1}$ | $\num{1}$ | $\num{0}$ | [table:binar_stellenwert_dual:Positionsvärden för det åttasiffriga binära talet $\num{10001110}$] Om man kan positionsvärdena är det enkelt att omvandla binära tal till decimalsystemet. Låt oss ta ett exempel ur tabell [ref:binar_stellenwert_dual]. Det binära talet $\num{10001110}$ ska räknas om till ett decimaltal. 1. Man skriver positionsvärdet ovanför varje siffra i det binära talet. 2. Man adderar alla positionsvärden som har en $\num{1}$ under sig: $128+8+4+2=142$ På papper kan man skriva binära tal med så många bitar som man råkar behöva. I digitalteknik är det annorlunda. Hård- eller mjukvaran anger ett bestämt antal positioner, som också kallas bredd. Till exempel har mikrokontrollrar eller datorer ofta bredderna $\num{8}$, $\num{16}$, $\num{32}$ eller $\qty{64}{\text{bitar}}$. Vid presentationen fylls binära tal ofta på framtill med nollor tills denna bredd nås. Det ändrar ingenting i talets värde. En fast bredd begränsar värdeområdet. Med en bit är två värden möjliga ($\num{0}$ och $\num{1}$), med två bitar redan fyra ($\num{00}$, $\num{01}$, $\num{10}$ och $\num{11}$) och med varje ytterligare bit dubbelt så många. Med $n$ bitar kan $2^n$ olika tal representeras.