Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
description
Transcript of Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Reprezentacja liczb w systemie binarnym
ułamki i liczby ujemne
M@rek PudełkoUrządzenia Techniki Komputerowej
Spis treści
• System zapisu znak – moduł• System zapisu U1• System zapisu U2
• Ułamki w systemie binarnym
2
System zapisu znak-moduł
• W tym systemie najstarszy bit (z lewej strony) informuje o znaku liczby.• 0 liczba dodatnia• 1 liczba ujemna
• Pozostałe bity mają takie samo znaczenie i reprezentują wartość liczby.
3
System zapisu znak-moduł• 10112 = 1110
• -1110 11011zm
• +1110 01011zm
• Liczbę w tym systemie oznaczamy sygnaturką zm (znak-moduł) lub sm (sign – magnitude)
• Spotyka się jeszcze inny sposób zapisu przez oddzielenie znaku od modułu wykrzyknikiem• -1110 1!1011zm
• +1110 0!1011zm4
Przykład zapisu systemu znak-moduł
5
Liczba ZM wartość Liczba ZM wartość
0000 0 1000 -0
0001 1 1001 -1
0010 2 1010 -2
0011 3 1011 -3
0100 4 1100 -4
0101 5 1101 -5
0110 6 1110 -6
0111 7 1111 -7
• Dla 4 bitów najwyższy bit informuje o znaku, a pozostałe 3 to wartość liczby.
• Zwraca uwagę podwójna reprezentacja zera jako 0000 i 1000.
System zapisu U1 (uzupełnienie do 1)
• W tym systemie najstarszy bit (z lewej strony) informuje o znaku liczby.• 0 liczba dodatnia• 1 liczba ujemna
• Liczby ujemne tworzy się negując odpowiadającą jej liczbę dodatnią.
6
System zapisu U1• 10112 = 1110
• +1110 01011u1
• Wartość liczby dodatniej jest analogiczna jak dla naturalnego kodu binarnego.• -1110 10100u1
• Liczbę ujemna uzyskujemy negując (0 → 1 i 1→0) poszczególne cyfry liczby dodatniej.
• Liczbę w tym systemie oznaczamy sygnaturką U17
Liczba ujemna w systemie zapisu U1
8
• Chcąc uzyskać liczbę ujemną, należy najpierw utworzyć odpowiadającą jej liczbę dodatnią.• +1910 010011U1
• Następnie negujemy ją zmieniając 0 w 1, a 1 w 0.• -1910 101100U1
Przykład zapisu systemu U1
9
Liczba U1 wartość Liczba U1 wartość
0000 0 1000 -7
0001 1 1001 -6
0010 2 1010 -5
0011 3 1011 -4
0100 4 1100 -3
0101 5 1101 -2
0110 6 1110 -1
0111 7 1111 -0
• Dla 4 bitów najwyższy bit informuje o znaku, a pozostałe 3 to wartość liczby.
• Zwraca uwagę podwójna reprezentacja zera jako ciąg samych zer lub samych jedynek.
System zapisu U2 (uzupełnienie do 2)
• W tym systemie najstarszy bit (z lewej strony) informuje o znaku liczby.• 0 liczba dodatnia• 1 liczba ujemna
• Liczby ujemne tworzy się negując odpowiadającą jej liczbę dodatnią i zwiększając ją o 1.
10
System zapisu U2• 10112 = 1110
• +1110 01011U2
• Wartość liczby dodatniej jest analogiczna jak dla naturalnego kodu binarnego.• -1110 10101U2
• Liczbę ujemną uzyskujemy negując (0 → 1 i 1→0) cyfry liczby dodatniej i zwiększając ją o 1.
• Liczbę w tym systemie oznaczamy sygnaturką U211
Liczba ujemna w systemie zapisu U2
12
• Chcąc uzyskać liczbę ujemną, należy najpierw utworzyć jej dopowiadającą liczbę dodatnią.• +1910 0100112
• Następnie negujemy ją zmieniając 0 w 1, a 1 w 0.• -1910 101100U1
• Na końcu dodajemy do wyniku 1.• -1910 101101U2
Obliczanie liczby ujemnej w systemie zapisu U2
13
• Najwyższa cyfra w liczbie z systemu U2 ma znak -, a pozostałe plus. Zamiana na system dziesiętny polega na dodaniu pozostałych pozycji i odjęciu ich od największej wagi.• 101101 U2 = -19
Waga 5 4 3 2 1 0
Cyfra 1 0 1 1 0 1
Znak cyfry - +
-1*25 0*24 1*23 1*22 0*21 1*20
-1 * 32 0 * 16 1*8 1*4 0*2 1*1
-32 + 0 + 8 + 4+ 0 + 1
-32 + 13 =
= -19
Przykład zapisu systemu U2
14
Liczba U2 wartość Liczba U2 wartość
0000 0 1000 -8
0001 1 1001 -7
0010 2 1010 -6
0011 3 1011 -5
0100 4 1100 -4
0101 5 1101 -3
0110 6 1110 -2
0111 7 1111 -1
• Dla 4 bitów najwyższy bit informuje o znaku, a pozostałe 3 to wartość liczby.
• Zwraca uwagę pojedyncza reprezentacja zera.
Zero w systemach zapisu
15
Liczba ZM Zero dodatnie Zero ujemne
Znak-moduł 0000 1000
U1 0000 1111
U2 0000
• Kody Z-M i U1 są kodami symetrycznymi. Stąd pojawiają się dwie postacie zera. Stanowi to kłopot przy reprezentacji liczb w informatyce.
• Zero nie jest ani dodatnie, ani ujemne. W powyższych systemach ma ono albo obie postacie (Z-M, U1) albo jest traktowane jako liczba dodatnia (U2).
• Kod U2 jest kodem niesymetrycznym.
Porównanie zapisu w systemachZ-M, U1, U2
16
Liczba System Znak-Moduł System U1 System U2
Liczba parzysta+22 010110ZM 010110U1 010110U2
-22 110110ZM 101001U1 101010U2
Liczba nieparzysta+25 011001ZM 011001U1 011001U2
-25 111001ZM 100110U1 100111U2
Ćwiczenia
17
• Przelicz następujące liczby dziesiętne na system zapisu Znak-Moduł, U1, U2.
1. -172. -223. -324. -115. -596. -437. -948. -199. -2510. -74
11. -7312. -6213. -3814. -9115. -6616. -7717. -4218. -3919. -1520. -14
21. -3122. -2123. -7924. -2325. -1426. -8927. -3528. -2729. -3630. -55
Zadania1. Jaka to liczba w systemie U-1?
a) 1111u1
b) 111111u1
c) 11111111u1
2. Porównaj sposób liczby zapisane w systemie U-2?a) -16 i +16b) -32 i +32c) -64 i +64d) -128 i +128
3. s
18
Ułamki w systemie binarnym
• W systemie binarnym ułamki zapisujemy analogicznie jak liczby rzeczywiste.
• Do przedstawienia liczb po przecinku używamy potęg ujemnych.
19
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2
20
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25
21
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25 1
0,25 *2
22
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25 1
0,25 *2 0,5 0
0,5
23
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25 1
0,25 *2 0,5 0
0,5 *2 1 1
0
24
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25 1
0,25 *2 0,5 0
0,5 *2 1 1
0
25
0,62510=0,1012
Przeliczanie z dziesiętnego na binarny• Ułamek dziesiętny obliczamy wg schematu:
0,62510=Mnożna Mnożnik Wynik Część całkowita
0,625 *2 1,25 1
0,25 *2 0,5 0
0,5 *2 1 1
0
26
0,62510=0,1012
Przeliczanie z binarnego na dziesiętny
• Każdy ułamek dziesiętny możemy przedstawić jako sumę liczb binarnych o ujemnych potęgach.
• Ułamek dziesiętny z binarnego obliczamy ze wzoru:
• n= c0*20 +c1*2-1 + c2*2-2 + ... + ci*2-i
n= ci*2i
Wartość pozycji Waga pozycji27
Przeliczanie z binarnego na dziesiętny
• Jakim ułamkiem dziesiętnym jest 0,101 binarne?
0, 1 0 10 -1 -2 -3 Waga
28
Przeliczanie z binarnego na dziesiętny
• Jakim ułamkiem dziesiętnym jest 0,101 binarne?
0, 1 0 10 -1 -2 -3 Waga
0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =
29
Przeliczanie z binarnego na dziesiętny
• Zamieniamy ujemne potęgi na ułamek zwykły
0, 1 0 10 -1 -2 -3 Waga
0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =0 * 0+ 1 * 1/21+ 0 * 1/22+ 1 * 1/23+ =
30
Przeliczanie z binarnego na dziesiętny
• Wyliczamy ułamki
0, 1 0 10 -1 -2 -3 Waga
0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =0 * 0+ 1 * 1/21+ 0 * 1/22+ 1 * 1/23+ =0 * 0+ 1 * 1/2+ 0 * 1/4+ 1 * 1/8+ =
31
Przeliczanie z binarnego na dziesiętny
• Zamieniamy ułamki zwykłe na dziesiętne
0, 1 0 10 -1 -2 -3 Waga
0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =0 * 0+ 1 * 1/21+ 0 * 1/22+ 1 * 1/23+ =0 * 0+ 1 * 0,5+ 0 * 0,25+ 1 * 0,125+ =
32
Przeliczanie z binarnego na dziesiętny
• Zamieniamy ułamki zwykłe na dziesiętne
0, 1 0 10 -1 -2 -3 Waga
0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =0 * 0+ 1 * 1/21+ 0 * 1/22+ 1 * 1/23+ =
0 + 0,5+ 0 + 0,125 =0,625
330,1012=0,62510
Co to za ułamek dziesiętny?
• 0,11012
• 0,100112
34
Co to za ułamek dziesiętny?
• 0,11012 = 0,8125
• 0,100112= 0,59375
35
Zamień na ułamek binarny
• 0,375• 0,5125• 0,6• 0,15
36
Zamień na ułamek binarny
• 0,375 = 0,0112
• 0,5125 = 0, 1000 (0011) 2
• 0,6 = 0, (1001) 2
• 0,15 = 0, 00 (1001) 2
37