summaryrefslogtreecommitdiffstats
path: root/datorteknik/Binära tal.md
blob: 1c3a4a6df252eae03f5466211a09d1a4cd4ca507 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[[Talbas]] 2.

# Omvandling

## Från decimalt tal

Kan subtahera bort 2-potenser:

$$98_{10} = 64 + 34 = 64 + 32 + 2 = 1100010_2$$

Kan också dividera med två kontinuerligt. Resten vid divisionen baklänges blir
talet i bas 2. Avrunda nedåt.

$$98 / 2 = 49.0 \rightarrow 0$$
$$49 / 2 = 24.5 \rightarrow 1$$
$$24 / 2 = 12.0 \rightarrow 0$$
$$12 / 2 = 6.0 \rightarrow 0$$
$$6 / 2 = 3.0 \rightarrow 0$$
$$3 / 2 = 1.5 \rightarrow 1$$
$$1 / 2 = 0.5 \rightarrow 1$$
$$\Rightarrow 98_{10} = 1100010_2$$

## Från hexadecimala tal

Superlätt binärt <-> hexadecimalt. Binärt -> hexadecimalt: lägg till nollor till
vänster tills längden är mod 4 och översätt grupper om fyra till sitt
hexadecimala tecken. Hexadecimalt -> binärt: översätt varje tecken till de fyra
binära siffrorna rakt av.

# Två-komplement

Tyngden i den första siffran är negativ. Exempel: tolka $1011_2$ som ett
två-komplementstal.

$$1011_2 = -8 \cdot 1 + 4 \cdot 0 + 2 \cdot 1 + 1 \cdot 1 = -8 + 3 = -5_{10}$$

## Byta tecken

$$-X = \overline{X} + 1$$

$$-3_{10} = -0011_2 = \overline{0011} + 1 = 1100 + 1 = 1101_2$$