Talstelsels, rekenen en rekenschakelingen

advertisement
Talstelsels, rekenen en rekenschakelingen
•
•
•
•
•
•
•
Binaire code
Hexadecimale code
Optellen
Two’s complement code
Aftrekken
Arithmetic Logic Unit
Sign extension
1
Decimale code
235 = 2 * 102 + 3 * 101 + 5 * 100 = 200 + 30 + 5
101 = 1 * 102 + 0 * 101 + 1 * 100 = 100 + 0 + 1
Grondtal is 10
Binaire code
101 = 1 * 22 + 0 * 21 + 1 * 20 = 4 + 0 + 1 = 5Dec.
1101 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 8 + 4 + 0 + 1 = 13Dec.
Grondtal is 2
2
Decimale
getal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Binaire getal
23
8
22
4
21
2
20
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
3
Hexadecimale code
•
•
•
•
Verkorte schrijfwijze binaire code
Grondtal 16
Dus zijn er 16 “cijfers” nodig
0 .. 9, A, B, C, D, E en F
4
Hex.
7
9
A
B
C
D
E
F
10
11
..
30
FE
Binary
0111
1001
1010
1011
1100
1101
1110
1111
0001 0000
.… ….
.… ….
.… ….
.… ….
Decimal
7
9
10
11
12
13
14
15
16
..
30
..
..
5
Hex.
7
9
A
B
C
D
E
F
10
11
..
30
FE
Binary
0111
1001
1010
1011
1100
1101
1110
1111
0001 0000
0001 0001
.… ….
.… ….
.… ….
Decimal
7
9
10
11
12
13
14
15
16
17
30
..
..
6
Hex.
7
9
A
B
C
D
E
F
10
11
1E
30
FE
Binary
0111
1001
1010
1011
1100
1101
1110
1111
0001 0000
0001 0001
0001 1110
…. ….
…. ….
Decimal
7
9
10
11
12
13
14
15
16
17
30
..
..
7
Hex.
7
9
A
B
C
D
E
F
10
11
1E
30
FE
Binary
0111
1001
1010
1011
1100
1101
1110
1111
0001 0000
0001 0001
0001 1110
0011 0000
…. ….
Decimal
7
9
10
11
12
13
14
15
16
17
30
48
..
8
Hex.
7
9
A
B
C
D
E
F
10
11
1E
30
FE
Binary
0111
1001
1010
1011
1100
1101
1110
1111
0001 0000
0001 0001
0001 1110
0011 0000
1111 1110
Decimal
7
9
10
11
12
13
14
15
16
17
30
48
254
9
Optellen
Getal
Decimaal
Binair
A
25
11001
B
29
11101
A+B
54
110110
↑ ↑
↑
↑ = 1 onthouden
10
Optellen
Getal
Decimaal
Binair
transport
A
1
25
11001
11001
B
29
11101
A+B
54
110110
1 onthouden
11
Optellen
Getal
Decimaal
Binair
transport
A
1
25
11001
11001
B
29
11101
1
onthouden
Carry bit
A+B
54
110110
Sum bit
12
Optellen
Getal
Decimaal
Half adder
Binair
transport
A
1
25
11001
11001
B
29
11101
1
onthouden
Carry bit
A+B
54
110110
Sum bit
13
Half Adder
a
b
Carry
gewicht = 2
Sum
Gewicht = 1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Half adder
14
Optellen
Getal
Decimaal
Full adder
Half adder
Binair
transport
A
1
25
11001
11001
B
29
11101
1
onthouden
Carry bit
A+B
54
110110
Sum bit
15
Full Adder
a
b
c
Carry
Sum
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
Tabel full adder
16
Optelschakeling voor twee getallen van vier bits
17
Martiaanse getallen
Hoe Marsvrouwtjes rekenen
18
Alle Martiaanse cijfers
Hun aardse waarde staat ervoor
0
1
2
3
1.
2.
Welk talstelsel gebruikt men op Mars? Antwoord
Wat is de aardse, decimale waarde van het volgende Martiaanse getal: 121
25
18
212
3. Tel de Martiaanse getallen op, die hieronder staan. Noteer de uitkomst in het Martiaans.
____+
19
Alle Martiaanse cijfers
Hun aardse waarde staat ervoor
0
1
2
3
1.
2.
Welk talstelsel gebruikt men op Mars? Antwoord 4
Wat is de aardse, decimale waarde van het volgende Martiaanse getal: 121
2
25 (= 1*4 + 2 * 41 + 1 * 40)
18
212
3. Tel de Martiaanse getallen op, die hieronder staan. Noteer de uitkomst in het Martiaans.
(10)
(32)
+
(102)
20
Opgaven
• Vragen en opdrachten paragraaf 2.5
21
Rekenen en rekenschakelingen
•
•
•
•
•
•
Binaire code
Hexadecimale code
Optellen
Two’s complement code
Aftrekken
Arithmetic Logic Unit
22
Negatieve getallen
One’s complement code
1
0
0
0
-7
..
..
..
..
..
1
1
0
0
-3
1
1
0
1
-2
1
1
1
0
-1
1
1
1
1
-0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
..
..
..
..
..
0
1
1
1
7
Waarom is deze code minder geschikt?
23
Negatieve getallen
Two’s complement code
1
0
0
0
-8
..
..
..
..
..
1
1
0
0
-4
1
1
0
1
-3
1
1
1
0
-2
1
1
1
1
-1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
..
..
..
..
..
0
1
1
1
7
4-bit: Bereik -8 .. +7
24
Negatieve getallen
Hoe genereer ik een negatief getal?
25
Negatieve getallen
Hoe genereer ik een negatief getal?
getal
0001 1001
25
complement
1110 0110
1
1110 0111
-25
Two’s complement
Controle: -128 + 64 + 32 + 4 + 2 + 1 = -25
26
Negatieve getallen
A = −an −1 2
A = −an −1 2
n −1
n −1
+ an − 2 2
n−2
n−2
2
1
+ ... + a2 2 + a1 2 + a0 2
0
+ ∑ 2 ai
i
i =0
27
Signed Integer
8 bit
0100 0000 = 64
1000 0111 = -121
Range: 0 .. 2 n − 1
n = 8 Range –128 .. 127
n = 16 Range -32768 .. 32767
n = 32 Range –2.147.483.648 .. 2.147.483.647
28
Overflow (in 4 bit systeem)
0011
0110
1001
3
6
-7
1011
1010
+
10101
-5
-6
+5 +
antwoord 1001 + overflow
antwoord 0101 + overflow
antwoord –7 + 16 = +9
antwoord 5 - 16 = -11
Negeren
4 bit systeem
29
Two’s complement code
30
Hoe werkt de hardware?
Schakeling die kan aftrekken
A − B = A + (− B) = A + B + 1
31
Aftrekken : -3 – (+6) = -3 +(-6)
1101
0110
-3
6
-
1101
1010
-3
-6
10111
7
+
antwoord 0111 + overflow
0110
bits inverteren 1001
1 bij optellen
1
1010
antwoord 7 - 16 = -9
Negeren
4 bit systeem
32
ALU
Operanden
Hoeveel operaties?
33
Overflow condities:
Overflow bij optellen als:
Twee positieve getallen: antwoord negatief
Twee negatieve getallen: antwoord positief
Overflow bij aftrekken als:
Positieve getal – negatief getal: antwoord negatief
Negaief getal – positief getal: antwoord positief
Voor 16 bit systeem: Overflow =((NOT(a15)) AND (NOT(b15)) AND (Y15)) OR
((a15)AND (b15) AND (NOT(Y15))) OR
((NOT(a15)) AND (b15) AND (Y15)) OR ((a15) AND (NOT(b15)) AND (NOT(Y15))).
NOT(a15): hoogste bit van het getal A is ‘0’
34
Verdieping: "sign extension"
• Converteren n bit getallen naar 2*n bit getallen
• Voorbeeld: 8 bit 16 bits
Copy the most significant bit into the other bits
0011 0010 0000 0000 0011 0010 50Dec.
1001 1010 1111 1111 1001 1010 -102Dec.
Opgaven
• Vragen en opdrachten paragraaf 2.6 en 2.7
36
Download