Zaps nformacj, systemy pozycyjne 1 Lteratura Jerzy Grębosz, Symfona C++ standard. Harvey M. Detl, Paul J. Detl, Arkana C++. Programowane. Zaps nformacj w komputerach Wszystke elementy danych przetwarzane przez komputery cyfrowe można ostateczne zredukować do kombnacj zer jedynek. Wynka to z możlwośc prostego tanego zbudowana przyrządów elektroncznych, mogących przyjmować dwa stany umowne 1. Najmnejszy element danych w komputerze nazywany jest btem, jest to skrót od bnary dgt czyl cyfry (bnarnej, dwuskładnkowej), która może przyjmować jedną z dwóch wartośc, umowne lub 1. Wyróżnamy następujące operacje wykonywane na btach przez obwody komputerowe: sprawdzane wartośc btu, ustawene wartośc btu, odwracane (negacja) jego wartośc. Dla programstów praca z danym na pozome btów jest ucążlwa. Dogodnej jest pracować z danym w forme cyfr dzesętnych lter alfabetu łacńskego oraz symbol specjalnych ($ @ & #). Cyfry, ltery symbole specjalne nazywane są znakam. Zbór wszystkch znaków stosowanych do psana programów reprezentacj elementów danych w określonym komputerze nazywany jest zestawem znaków komputera. Każdy znak jest reprezentowany przez sekwencję zer jedynek (nazywaną bajtem) jest przetwarzany przez komputer. Bajt składa sę z 8 btów. Lczbowe systemy pozycyjne We współczesnych językach programowana każda stała, zmenna, wyrażene, czy funkcja są określonego typu. Typ danych wyznacza: zbór wartośc, zbór operacj, jake można wykonać na elementach zboru wartośc. Wśród skalarnych typów danych wyróżna sę mędzy nnym: typ nteger obejmuje podzbór zboru lczb całkowtych, zwykle mnejszych co do wartośc bezwzględnej od pewnej wartośc maksymalnej MAX_INT; pomjając sytuację wystąpene nadmaru należy zauważyć, że wszystke operacje wykonane na argumentach tego typu dają wartośc dokładne (np. dodawane, odejmowane, mnożene, dzelene całkowte),
Zaps nformacj, systemy pozycyjne 2 typ real obejmuje skończony podzbór zboru lczb rzeczywstych, skutk wykonywanych oblczeń zależą od problemu stosowanego algorytmu, wynk przyblżają wynk prawdzwe. Z typem lczby są zwązane określone zapsy, reprezentacje system lczbowy. Ogół zasad umożlwających przedstawane lczb za pomocą umownych znaków przyjęto nazywać systemem lczbowym, a znak służące do zapsywana lczb cyfram. Wyraz cyfra pochodz od arabskego wyrazu sfr, oznaczającego zero. Zero przejęl Arabowe od Hndusów. Wprowadzene tego symbolu ułatwło zapsywane lczb wykonywane dzałań. Wśród systemów lczbowych wyróżnamy: systemy pozycyjne znaczene cyfry jest zależne od pozycj w lczbe, np. system dzesątkowy (dzesętny), cyfra 7 występująca w lczbe 777 ma różne znaczene w zależnośc od pozycj, na której sto; systemy nepozycyjne znaczene cyfry jest nezależne od mejsca położena w lczbe, np. lczbowy system rzymsk, pochodzena etruskego. Systemy lczbowe o podstawe p > 1 Dla każdej lczby naturalnej L N oraz lczby naturalnej p > 1 stneje jednoznaczne wyznaczony cąg cn 1 cn 2... c1c, c {,1,..., p 1}, =,1,..., n 1, tak że L n = 1 = c p Cyfra o ndekse n 1 to cyfra najbardzej znacząca (ang. MSD most sgnfcant dgt). Cąg cn 1 cn 2... c1c nazywamy reprezentacją (rozwnęcem) lczby L w systeme u podstawy p. Podstawa pozycyjnego systemu lczbowego odpowada lośc cyfr wykorzystywanych do przedstawena lczb w tym systeme. W celu określena maksymalnej wartośc lczby całkowtej, jaką można zapsać w przedstawonej postac należy za cyfry c podstawć wartość maksymalną, równą p 1: n 1 n 1 n 1 p n L max = ( p 1) p = ( p 1) p = ( p 1) = p 1. 1 p = Ilość różnych lczb wynos = L +1 = n max p. W systemach lczbowych najbardzej powszechne uznane zyskały systemy: dwójkowy (bnarny), p = 2, c {,1 }, ósemkowy, p = 8, c {,1,2,3,4,5,6,7 },
Zaps nformacj, systemy pozycyjne 3 dzesętny (dzesątkowy, decymalny), p = 1, c {,1,2,3,4,5,6,7,8,9 }, szesnastkowy (heksadecymalny) p = 16, c {,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F}. Lczby z zakresu od do 16 zapsane w systeme o postawe p p = 1 p = 2 p = 8 p = 16 1 1 1 1 2 1 2 2 3 11 3 3 4 1 4 4 5 11 5 5 6 11 6 6 7 111 7 7 8 1 1 8 9 11 11 9 1 11 12 A 11 111 13 B 12 11 14 C 13 111 15 D 14 111 16 E 15 1111 17 F Ćwczene 1. Rozpsać lczby w podanym systeme pozycyjnym, podać ch wartośc dzesętne: 1543 1 = 111 2 = 1122 3 = 223 5 = Reprezentacja lczb w komputerach W komputerach lczby, tak jak każda nna nformacja, są reprezentowane w postac bnarnej (dwójkowej). Każda nformacja jest cągem btów, z których każdy może być cyfrą dwójkową lub 1. 1 bt (1b) oznacza jedno z trzech pojęć: cyfrę dwójkową lub 1 (bnary dgt),
Zaps nformacj, systemy pozycyjne 4 urządzene w komputerze mogące przechowywać cyfrę dwójkową, jednostkę pojemnośc nformacj. Jednostk pamęc komputera to: 1 bajt, 1 B = 8 btów, 1 klobajt, 1 KB = 2 1 B = 124 B, 1 megabajt, 1 MB = 2 1 KB, 1 ggabajt, 1 GB = 2 1 MB, 1 terabajt, 1 TB = 2 1 GB. Przydatne dzałana na lczbach całkowtych dzelene całkowte DIV, reszta z dzelena całkowtego MOD. 7 dv 2 = 3 7 mod 2 = 1 3*2+1=7 14 dv 1 = 1 14 mod 1 = 4 1*1+4=14 23 dv 5 = 4 23 mod 5 = 3 4*5+3=23 Dzałana na lczbach bnarnych += 1 =1 1+=1 = 1+1=1 1 1=1 Zadane 1. Zamana lczby bnarnej na dzesętną 1) Wyznaczyć wartość dzesętną lczb (11111) 2, (111) 2, (1) 2. 2) Jaka jest najwększa lczba bnarna zapsana na czterech btach, ośmu btach, n btach? Podać wzór ogólny. Schemat Hornera w = cn 1 w = w 2 + c, = n 2, n 3,..., c 1 1 1 p = 2 1 2 5 1 2 41 (111) 2 = (41) 1 3) Wyznaczyć wartość lczby (11111) 2, (111) 2, (1) 2 w systeme dzesętnym korzystając ze schematu Hornera. 4) Jaką wartość dzesętną mają następujące lczby dwójkowe:
Zaps nformacj, systemy pozycyjne 5 11 2, 1 2, 111 2, 1 2, 111 2, 11 2, 1111 2, 1111 2, 1111 2, 11 2. 5) Wyprowadzć wzory na schemat Hornera dla lczby zapsanej w systeme pozycyjnym o podstawe p, tzn. postac L = c p, c {,1, K, p 1}. = Zamana lczby dzesętnej na bnarną algorytm Eukldesa (41) 1 = (111) 2 n dv 2 n mod 2 cyfra 41 1 c 5 2 c 4 1 c 3 5 1 c 2 2 c 1 1 1 c STOP Aby zamenć lczbę dzesętną na bnarną należy wykonać dzelene całkowte przez dwa aż do uzyskana lorazu równego, cyfry lczby bnarnej to kolejne reszty (zapsywane od końca, perwsza reszta to cyfra c, druga to c 1, td.). Zadane 2. Zapsać w postac bnarnej lczby dzesętne 41, 27, 97, 123, 17, 255, 64, 58, 127, 128. Zadane 3. Jaką wartość dzesętną maja następujące lczby: 25 8, 21 8, FA 16, 4C 16, 2122 3, 213 4 Zamana lczby dzesętnej na lczbę w dowolnym systeme pozycyjnym Analogczne możemy dokonać zamany z systemu o podstawe 1 na system o dowolnej podstawe, wykonując dzelene ne przez 2, ale przez lczbę, która jest podstawą systemu. W zapse lczb w systemach o podstawe p>1 przyjmujemy następujące oznaczena dla lczb: 1=A, 11=B, 12=C, td. Zadane 4. Zamenć lczbę 63 na lczbę w systeme o podstawe p=5, p=3, p=16. Znaleźć reprezentację lczb 1, 17, 124, 32 w systemach o podstawe p=2, 5, 8, 16. n 1
Zaps nformacj, systemy pozycyjne 6 Zadane 5. Oblczyć: += 1 = 1+= = 1+1= 1 1= Wykonać dodawane mnożene lczb bnarnych 1111 11111 oraz 11111 11. Podać wartośc dzesętne tych lczb otrzymanych wynków. System szesnastkowy (heksadecymalny) Aby zamenć lczbę o podstawe 2 na lczbę o podstawe 16 grupujemy od prawej po 4 bty rozwnęca bnarnego, odczytujemy wartość dzesętna każdej grupy btów podstawamy odpowedną cyfrę z systemu szesnastkowego. Aby zamenć lczbę o podstawe 16 na lczbę o podstawe 2 każdą cyfrę szesnastkową zapsujemy na 4 btach (pamętamy o uzupełnenu z przodu odpowedna loścą zer, o le jest taka potrzeba). Zadane 6. 1) Wypsać cyfry szesnastkowe, zapsać je w postac bnarnej dzesętnej. 2) Lczby 1 2, 11 2, 11 2, 11 2, 11111 2, 11111111 2, 1111 2, 111111111 2 zapsać w postac szesnastkowej 3) Lczby AC7 16, FF 16, 21 16 zapsać w postac bnarnej. 4) Lczbę 255 zapsać: a) bezpośredno w postac szesnastkowej, b) zamenć na postać bnarną, następne na szesnastkową. 5) Zapsać szesnastkowo bnarne lczby dzesętne 7335, 97. 6) Podać postać bnarną dzesętną lczb szesnastkowych 7CD, 39BB. 7) Oblczyć reprezentację dwójkową lczby 11, a następne, korzystając z tego wynku znaleźć szybko reprezentacje dwójkowe lczb 44 88.