Pracownia komputerowa Dariusz Wardecki, wyk. V
Powtórzenie Co wykona następujący skrypt? #! /bin/bash! for i in `ls /dmj/2002`! do! mkdir ~/$i! cp -r /dmj/2002/$i/obrazy ~/$i! done
Zapis binarny, bity Komputery przechowujπ rozkazy, a takøe liczby i znaki (ogólnie informacje kaødego rodzaju), w postaci ciπgów cyfr 0 i 1, zwanych cyframi binarnymi lub bitami (ang. BInary digit). Cyfry binarne atwo jest przechowywaê 1 Weümy dowolny uk ad o dwóch ( atwo rozróønialnych) stanach. 2 Oznaczmy te stany jako i ø. 3 Wprowadzajπc uk ad w stan zapisujemycyfrí 0. 4 Wprowadzajπc uk ad w stan ø zapisujemycyfrí 1. 5 Zbiór takich uk adów moøe reprezentowaê ciπg cyfr 0 i 1. Ciπgi cyfr binarnych (bitów) sπ nazywane s owami (ang. word).
Reprezentacje liczb i znaków Reprezentaja naturalna - nieujemne liczby całkowite Reprezenatacje umowne - liczby ujemne, liczny niecałkowite Znaki Tylko reprezentacje umowne zbiory znaków (ang. character set). ASCII (m. in. 1000001 bin = A, 1000010 bin =Bitd.) Strony kodowe, standardy ISO-8859, Unicode.
Typy danych Dla s owa N-bitowego 1 1 011010...010111 0 b N 1 b N 2 b 1 1 b j bit (cyfra binarna) na pozycji j = 0, 1,...,N 1 Waga bitu odpowiada jego pozycji w s owie: b 0 najmniej znaczπcy (najm odszy) bit. b N 1 najbardziej znaczπcy (najstarszy) bit. b 0 Typ danych (ang. data type) Okreúla rozmiary danych (np. jaka liczba bitów ma byê wykorzystywana do zapisania znaku) oraz interpretacjí zapisu binarnego (tzn. jakie ma byê znaczenie poszczególnych bitów).
Reprezentacja bezznakowa liczb całkowitych b nieujemna liczba ca kowita b = N 1 ÿ j=0 b j 2 j = b N 1 2 N 1 + b N 2 2 N 2 +...+ b 1 2 1 + b 0 2 0 Typy danych dla reprezentacji bezznakowej N = 8 : od 0 do 255 = 2 8 1 N = 16 : od 0 do 65535 = 2 16 1 N = 32 :od0do2 32 1 N = 64 :od0do2 64 1 N = 128 :od0do2 128 1
Reprezentacja bezznakowa liczb całkowitych Przykłady: 11011 = 1 2 4 +1 2 3 +0 2 2 +1 2 1 +1 2 0 = 16 + 8 + 0 + 2 + 1 = 27 DEC BIN 0 0 65 10 =? 2 1 1 2 10 3 11 4 100 5 101 6 110 7 111
Reprezentacja bezznakowa Przykłady: liczb całkowitych 65 10 =? 2 Operacja modulo: 65%2 = 1! 6%2 = 0! 9%2 = 1!! 32%2 = 0! 3%2 = 1! 4%2 = 0! a mod b! 16%2 = 0! 1%2 = 1! 2%2 = 0! = a%b = r! 8%2 = 0! 1%2 = 1 r - reszta z dzielenia 4%2 = 0! 2%2 = 0! 1%2 = 1!
Arytmetyka w reprezentacji bezznakowej Dodawanie liczb w systemie dwójkowym a b c 0 0 0 1 0 1 0 1 1 1 1 10 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1
Arytmetyka w reprezentacji bezznakowej Dodawanie liczb w systemie dwójkowym 10010101 + 01001110 = 11100011 (149 + 78 = 227) 0 0 1 1 1 0 0 a 1 0 0 1 0 1 0 1 b 0 1 0 0 1 1 1 0 a + b 1 1 1 0 0 0 1 1 10110111 + 01101011 = 100100010 (183 + 107 =?) 1 1 1 1 1 1 1 1 a 1 0 1 1 0 1 1 1 b 0 1 1 0 1 0 1 1 a + b 0 0 1 0 0 0 1 0
Arytmetyka w reprezentacji bezznakowej Odejmowanie liczb w systemie dwójkowym a b c 0 0 0 1 0 1 0 1 1 1 1 10 111001! - 10110!! 100011! + 10110!! 111001
Własności reprezentacji bezznakowej Tylko liczby całkowite nieujemne Naturalna arytmetyka Możliwość wystąpienia przepełnienia (ang. overflow) przy dodawaniu Problem z odejmowaniem liczby większej od mniejszej
Arytmetyka w reprezentacji bezznakowej Mnożenie liczb w systemie dwójkowym a b c 0 0 0 1 0 0 0 1 0 1100! * 1011!! 10000100 1 1 1
Arytmetyka w reprezentacji bezznakowej Dzielenie liczb w systemie dwójkowym 1010:10 101!! 1010! 10!! 0010! 10!! 0010! 10!