Liczby w Komputerze Zajęcia 3
Liczby naturalne – postać binarna liczby Każdą liczbę naturalną x z przedziału [0,2n-1] zapisaną w systemie dziesiętnym możemy zapisać na n-bitach w systemie dwójkowym. Dla przykładu, każdą liczbę naturalną x z przedziału [0,28-1]=[0,255] zapisaną w systemie dziesiętnym możemy zapisać na 8-bitach w systemie dwójkowym. Np. 010 = 0000 00002 1710 = 0001 00012 12310 = 0111 10112 25510 = 1111 11112 Zadanie 1 Ile potrzeba najmniej bitów do zapisania liczby 123210? Zadanie2 Jaką największą liczbę dziesiętną możemy zapisać używając 16 bitów? Zadanie 3 110011002 = …10?
Arytmetyka binarna
Liczby całkowite – system Znak-Moduł (ZM) Liczbę całkowitą x zapisaną w systemie Znak-Moduł interpretujemy następująco: Najstarszy bit (liczony od lewej) przeznaczamy na znak liczby, przy czym, jeśli jest to 0, to mamy do czynienia z liczbą dodatnią, a jeśli 1, to z liczbą ujemną. Pozostałe bity przeznaczamy na moduł (wartość bezwzględną) liczby. Wówczas na n-bitach możemy zapisać 2n-1liczb z przedziału [-2n-1+1,2n-1-1]. A zatem na 8-bitach możemy zapisać każdą liczbę całkowitą z przedziału [-28-1+1,28-1-1]=[-127,127]. Np. 10001001ZM = - (0*26+0*25+0*24+1*23+0*22+0*21+1*20)10 = - 910 Z M 01001001ZM = + (1*26+0*25+0*24+1*23+0*22+0*21+1*20)10 = + 7310 Zadanie 1 Stosując dwójkową reprezentację Znak-Moduł, zapisać dziesiętne liczby całkowite na 8-bitach lub jeśli to konieczne ich wielokrotności: +2010, -2010, -12810, -37210, 24410. Zadanie 2 Rozkoduj liczby: 10111000ZM, 10101010ZM, 01110011ZM.
Liczby całkowite – System Uzupełnień do 2 (U2) Liczbę całkowitą x zapisaną w systemie U2 interpretujemy następująco: Najstarszy bit (czyli od lewej) ma wagę -2n-1. Wówczas łatwo zauważyć, że jeśli wynosi on 0, to mamy do czynienia z liczbą dodatnią, a jeśli 1, to z liczbą ujemną. Pozostałe bity przeznaczamy na moduł (wartość bezwzględną) liczby. Wówczas na n-bitach możemy zapisać 2n liczb z przedziału [-2n-1,2n-1-1]. A zatem na 8-bitach możemy zapisać każdą liczbę całkowitą z przedziału [-28-1,28-1-1]=[-128,127]. Np. 11001001U2 = 1*(-27)+1*26+0*25+0*24+1*23+0*22+0*21+1*2010 = -5510 01001001U2 = 0*(-27)+1*26+0*25+0*24+1*23+0*22+0*21+1*2010 = +7310 Sposób na zamianę liczby z systemu dziesiętnego na U2: 1. Jeśli liczba x jest dodatnia, to zamień ją na postać ZM i koniec. 2. Jeśli liczba x jest ujemna, to weź jej wartość bezwzględną i zamień ją na postać ZM. Następnie zbuduj liczbę według schematu: przepisuj od prawej wszystkie zera i pierwszą napotkaną jedynkę. Następnie przepisuj kolejne cyfry zamieniając każdą na przeciwną, tj. jedynkę na zero, a zero na jedynkę. Jeśli liczba przekracza długością zadaną liczbę bitów na których powinna się zmieścić, to wykreśl najstarszy bit (czyli od lewej). 3. Otrzymana liczba, to szukana postać w systemie U2 liczby x. Zadanie 1 Stosując dwójkową reprezentację U2, zapisać dziesiętne liczby całkowite na 8-bitach lub jeśli to konieczne ich wielokrotności: +2010, -2010, -12810, -37210, 24410. Zadanie 2 Rozkoduj liczby: 10111000U2, 10101010U2, 01110011U2.
Liczby rzeczywista – Postać Stałoprzecinkowa (PS) Liczba rzeczywista x w systemie stałopozycyjnym ma postać: x = Znak CzęśćCałkowita , CzęśćUłamkowa Np. + 123 , 125 I po zamianie binarnej: + 1111011 , 001 Zadanie 1 Podane liczby dziesiętne zapisać w systemie stałoprzecinkowym w formacie: 0-4 bity na część ułamkową, 5-14 bity na część całkowitą, 15 bit na znak: +0,03125, 13,75, -0,875, -19,25. Zadanie 2 Rozkoduj liczby zapisane w systemie stałoprzecinkowym w formacie: 0-4 bity na część ułamkową, 5-14 bity na część całkowitą, 15 bit na znak: 0000010110011000, 1001000101101100, 0000000101101001.
Liczby rzeczywiste – Postać Zmiennoprzecinkowa (PZ) Liczba rzeczywista x w systemie zmiennopozycyjnym ma postać: x = Znak WykładnikMantysa a dokładniej: x=Z*M*PW gdzie P - to podstawa systemu w którym jest zapis liczby. Np. Powiedzmy, że liczbę rzeczywistą x zapisujemy na 8 bitach, przy czym: 1 bit na znak 3 bity na wykładnik 4 bity na mantysę. Weźmy liczbę x=-60,345433. Przesuwamy najpierw przecinek: x=-6,0345433. Mamy teraz: x=-603410-2 Zadanie Zakoduj liczby: x=-123.34 oraz x=34.675 na 8 bitach z przydziałem na Mantysę i Wykładnik tak jak powyżej.
Praca domowa Dokończ wszystkie nierozwiązane zadania.