Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne M@rek Pudełko Urządzenia Techniki Komputerowej
Spis treści System zapisu znak – moduł System zapisu U1 Ułamki w systemie binarnym
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.
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!1011zm
Przykład zapisu systemu znak-moduł Liczba ZM wartość 0000 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ą.
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ą U1
Liczba ujemna w systemie zapisu U1 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 Liczba U1 wartość 0000 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.
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ą U2
Liczba ujemna w systemie zapisu U2 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 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 Cyfra 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+ 13 = = -19
Przykład zapisu systemu U2 Liczba U2 wartość 0000 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 Liczba ZM Zero dodatnie Zero ujemne Znak-moduł 0000 1000 U1 1111 U2 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 systemach Z-M, U1, U2 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 Przelicz następujące liczby dziesiętne na system zapisu Znak-Moduł, U1, U2. -17 -22 -32 -11 -59 -43 -94 -19 -25 -74 -73 -62 -38 -91 -66 -77 -42 -39 -15 -14 -31 -21 -79 -23 -14 -89 -35 -27 -36 -55
Zadania s Jaka to liczba w systemie U-1? Porównaj sposób liczby zapisane w systemie U-2? -16 i +16 -32 i +32 -64 i +64 -128 i +128 s
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.
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
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
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
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 0,5
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 0,5
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 0,5 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 0,5 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 pozycji
Przeliczanie z binarnego na dziesiętny Jakim ułamkiem dziesiętnym jest 0,101 binarne? 0, 1 -1 -2 -3 Waga
Przeliczanie z binarnego na dziesiętny Jakim ułamkiem dziesiętnym jest 0,101 binarne? 0, 1 -1 -2 -3 Waga 0 * 20+ 1 * 2-1+ 0 * 2-2+ 1 * 2-3+ =
Przeliczanie z binarnego na dziesiętny Zamieniamy ujemne potęgi na ułamek zwykły 0, 1 -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+
Przeliczanie z binarnego na dziesiętny Wyliczamy ułamki 0, 1 -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+ 1 * 1/2+ 0 * 1/4+ 1 * 1/8+
Przeliczanie z binarnego na dziesiętny Zamieniamy ułamki zwykłe na dziesiętne 0, 1 -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+ 1 * 0,5+ 0 * 0,25+ 1 * 0,125+
Przeliczanie z binarnego na dziesiętny Zamieniamy ułamki zwykłe na dziesiętne 0, 1 -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,125 =0,625 0,1012=0,62510
Co to za ułamek dziesiętny? 0,11012 0,100112
Co to za ułamek dziesiętny? 0,11012 = 0,8125 0,100112= 0,59375
Zamień na ułamek binarny 0,375 0,5125 0,6 0,15
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