1 1. Znajdź podstawę x systemu naturalnego, w którym: a) 5 41 = , b

Transkrypt

1 1. Znajdź podstawę x systemu naturalnego, w którym: a) 5 41 = , b
Rok I
Lista nr 1
ARYTMETYKA KOMPUTERÓW
1. Znajdź podstawę x systemu naturalnego, w którym: a)
41x = 5 , b)
22 x = 4 c) a2 =301x , d) b2 =562x
2. Znajdź podstawę β systemu naturalnego, w którym liczby naturalne x1 oraz x2 są rozwiązaniami
równania ax2+ bx+c = 0. Wykonaj obliczenia dla x1 = 5β , x2 = 8β i równania 5β x2– 50β x+125β = 0
3* Znajdź podstawę systemu naturalnego, w którym równanie ax2 +bx+c=0 (a,b,c ∈ ) ma pierwiastki
całkowite. *RozwiąŜ zadanie zakładając, Ŝe a,x1,x2 są liczbami jednocyfrowymi, b = b1β+b0 jest liczbą
dwucyfrową, zaś c = c2β 2+c1β+c0, c2 = 0 lub 1. Wykonaj obliczenia dla x1 = 5β , x2 = 8β oraz a = 1 i 3.
4. WykaŜ, Ŝe w standardowym systemie naturalnym o podstawie β suma wartości cyfr iloczynu liczby
jednocyfrowej przez β − 1 jest stała. UłóŜ tabliczki mnoŜenia w systemach o bazie β = 5, 7, 9, 11, 13.
5. WykaŜ, Ŝe w dowolnym systemie naturalnym suma cyfr iloczynu dowolnej liczby jednocyfrowej przez
największą liczbę dwucyfrową |{β–1, β–1}|β jest stała. *Uogólnij wynik dla k⋅|{β–1, … , β–1, β–1}|β
6. Oblicz metodą pisemną iloczyn 0,324β × 2,41β i iloraz 43,4β : 3,2β dla β = 5, 7, 9, 11, 13 oraz dla β = α2,
korzystając z tabliczki mnoŜenia w systemie o podstawie α = 3, 4.
7. Przeprowadź konwersje podstawy (bazy), z dokładnością do 4 cyfr części ułamkowej wyniku:
a) 674,58110 = (…)16 = (…)4
b) 0CD,1216 = (…)2= (…)10
c) 3,0128 = … (…)2 …= (…)16
d) 34,5610 ×2–5 = (…)2 = (…)16
e) 102,213×5–2 = (…)5
f) 0BACA16 ×5–3 = (…)10
g) 6745,819 = (…)7 = (…)10
h) 0AA,1211 = (…)10 = (…)9
i) 102,213×15–2 = (…)5
j) 347/567 = (…)2
k) 234,(56)9 = (…)7
l) 12,3(45)7 = (…)10 = (…)11
8* WykaŜ, Ŝe jeśli istnieje nierozkładalny podzielnik podstawy źródłowej, który nie jest podzielnikiem
podstawy docelowej, to wynikiem konwersji ułamka skończonego w systemie o danej podstawie, na
reprezentację w innym systemie naturalnym jest ułamek okresowy.
9. Znajdź system o najmniejszej podstawie, w którym reprezentacja danego ułamka jest skończona:
a) 0,(27)10
b) 0,(101)2
c) 1 – 0,(56)9
d) 0,0(0011)2
e) 0,(35)11 – 0,(2)11
f) 0,1(23)7
A. WykaŜ, Ŝe w systemie naturalnym przeniesienie otrzymane podczas dodawania lub poŜyczka podczas
odejmowania na kaŜdej pozycji są zawsze równe 0 lub 1.
B. Opracuj algorytm dodawania i odejmowania liczb zapisanych w systemie znak-moduł (SM). Przyjmij,
Ŝe znak liczby jest kodowany standardowo (0 – plus, 1 –minus).
C* Opracuj algorytm dodawania i odejmowania w systemie naturalnym z niestandardowym zbiorem cyfr.
D. Oblicz odpowiednio wartości największej i najmniejszej liczby całkowitej, reprezentowanych przez
łańcuch k cyfr w systemie: a) naturalnym o podstawie β, b) negabazowym, c) z cyframi znakowanymi,
d)* uzupełnieniowym pełnym i niepełnym, e)* spolaryzowanym „+1/2β k–1” oraz „+1/2β k–1–1”.
E* WykaŜ, Ŝe w systemach uzupełnieniowych pełnych o bazach skojarzonych konwersję podstawy moŜna
wykonać przez grupowanie (β → β S ) lub dekompozycję cyfr (β S → β ).
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
1
Rok I
Lista nr 2
ARYTMETYKA KOMPUTERÓW
1. Zapisz w systemie uzupełnieniowym do 2 (U2) z ośmioma bitami części ułamkowej liczby:
a) – 674,58110
b) – 0A,1216
c) – 3,0128
d) + 34,5610
e) 4,5610 – 4,5(6)10
Porównaj otrzymane kody z notacją w systemie uzupełnieniowym do 1 (U1) i systemie znak-moduł.
2. Dodaj i odejmij liczby 4-cyfrowe podane w dziesiętnym uzupełnieniowym systemie pełnym (U10):
a) 6745 ± 8123
b) 9,745 ± 0,8(23)
c) 31,56± 84,23
d) 9,994± 9,916
UŜywając lewostronnego rozszerzenia zweryfikuj poprawność wyników otrzymanych na 4 pozycjach.
3* WykaŜ, Ŝe w dodawaniu lub odejmowaniu w systemie stałobazowym i uzupełnieniowym uŜycie cyfr
lewostronnego rozszerzenia operandów wystarczy do wykrycia nadmiaru (przekroczenia zakresu).
4. Wykonaj zmianę znaku liczby danej w quasi-symetrycznym kodzie spolaryzowanym +2k oraz +2k−1
a) 10101001
b) 0101010
c) 1100001
c) 00110101
5. Zakładając, Ŝe podane 8-bitowe sekwencje zero-jedynkowe reprezentują liczby w kodzie
a) naturalnym (NB)
b) uzupełnieniowym pełnym (U2)
c) uzupełnieniowym niepełnym (U1)
d) znak-moduł (SM)
e) spolaryzowanym „+28–1–1”
f) spolaryzowanym „+28–1”.
oblicz sumę i róŜnicę liczb o kodach: i) 10011101 i 01111001, ii) 11011101 i 10111101. Sprawdź
poprawność wyników wykonując działanie odwrotne (suma – argument, róŜnica + odjemnik)
6. Znając kilka najbardziej znaczących bitów liczb n-bitowych w kodzie uzupełnieniowym U2, sprawdź,
czy w ich dodawaniu i odejmowaniu wystąpi nadmiar:
a) 11101010..?? ± 10011110..??
b) 1011010..?? ± 1001110..??
c) 011101..?? ± 11011001..??
7. Korzystając z zaleŜności X − Y = X + Y i zakładając, Ŝe liczby są dane w systemie naturalnym, oblicz:
a) 6745 – 8123
b) 9,745 – 0 , 823
c) 34,56– 81,23
d) 100111012 – 011110012
Sprawdź otrzymane wyniki wykonując działania odwrotne (róŜnica + odjemnik).
8. WykaŜ, Ŝe w systemie naturalnym lub uzupełnieniowym pełnym mnoŜenie liczb m–pozycyjnych nie
powoduje nadmiaru, jeśli wynik jest kodowany na co najmniej 2m pozycjach.
9. Wynik mnoŜenia m–bitowych liczb w kodzie U2 jest kodowany na 2m–1 bitach. Czy jest moŜliwe
wystąpienie nadmiaru, a jeśli tak to przy jakich wartościach mnoŜnej i mnoŜnika?
A. Wykonaj mnoŜenie liczb w dwójkowym kodzie uzupełnieniowym pełnym (U2) uŜywając bitów
rozszerzenia i stosując przekodowanie iloczynów częściowych eliminujące rozszerzenia:
a) 110101×011011
b) 011101×110111
c) 101001×111111
d) 1101010×1111101.
B. PokaŜ, Ŝe w systemie naturalnym dwójkowym i systemie uzupełnieniowym do 2 mnoŜenie przez stałą,
która jest sumą lub róŜnicą potęg dwójki moŜna wykonać jako dodawanie skalowanej mnoŜnej.
C. Oblicz iloczyn liczb 4-cyfrowych podanych w uzupełnieniowym systemie pełnym (U10/U8):
a) 6745U10 × 8123U10 b) 9745U10 × 0823 U10
c) 3156 U10 × 8423 U10
d) 9994 U10 × 9916 U10
e) 5745U8 × 7123U8
g) 3156 U8 × 6423 U8
h) 7774 U8 × 7716 U8
f) 7745U8 × 0723 U8
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
2
Rok I
Lista nr 3
ARYTMETYKA KOMPUTERÓW
1. Zakoduj na 8 bitach według prostej i alternatywnej reguły Booth’a i Booth’a-McSorley’a:
a) –81710
b) +132110
c) 101111012
d) 1011101U2
e)* 1011101(–2)
2. UŜywając przekodowania Booth’a oraz Booth’a-McSorley’a i przyjmując, Ŝe operandy są w kodzie
A) dwójkowym naturalnym, B) uzupełnieniowym U2, C)* dopełnieniowym U1, oblicz iloczyny:
a) 11000101×01110011 b) 011101×11011110
c) 101001×1011111
d) 010011×010111110.
3. Wykonując dzielenie odtwarzające (metodą sekwencyjną „kolejnych reszt”) oblicz z dokładnością do 4
pozycji znaczących iloraz liczb reprezentowanych w systemie uzupełnieniowym pełnym
a) 01010011U2 : 1011U2 b) 1010011U2 : 01011U2
c) 576U10 : 176U10
d) 424U10 : 824U10
e) 6465U10 : 353,5U10
g) 5465U10 : 150,7U10
h) 2465U8 : 753,5U8.
f) 6465U8 : 353,5U8
Sprawdź poprawność otrzymanych wyników wykonując mnoŜenie.
4. Wykonaj w kodzie U2 z dokładnością do 5 cyfr znaczących ilorazu dzielenie nieodtwarzające liczb:
a) 110101 : 011011
b) 011101 : 110111
c) 101001 : 11111
d) 101001 : 10011,
e) 1,10101 : 01101,1
f) 0,11101 : 110,111
g) 1010,01 : 111,11
h) 101001 : 100,11.
Sprawdź, wykonując mnoŜenie, poprawność otrzymanych wyników.
5. Oblicz metodą nieodtwarzającą z dokładnością do 4 cyfr znaczących iloraz liczb naturalnych (NB):
a) 1101012 : 0110112
b) 0111012 : 1101112
c) 1010012 : 111112
d) 1010012 : 100112,
e) 1,101012 : 01101,12
f) 0,111012 : 110,1112
g) 1010,012 : 111,112
h) 1010012 : 100,112.
6. Oblicz metodą sekwencyjną („kolejnych reszt”) pierwiastek kwadratowy z liczb
a) 1234567, b) 1010 0010 0111 11002, c) 98765432110 d) 123,4567, e) 10100 0100,1111 1002
z dokładnością do jednej, dwóch i siedmiu cyfr znaczących oraz podaj trzecią i czwartą resztę.
7. Dane są 3 cyfry przybliŜenia pierwiastka kwadratowego i trzecia reszta. Podaj dwie kolejne cyfry, jeśli:
a) Q3 =1237, r3 =34567, b) Q3 =12310, r3 = 345610, c) Q3 =1012, r3 =111012,
8. Dane jest przybliŜenie pierwiastka kwadratowego z dokładnością do 4 cyfr znaczących i czwarta reszta
równa 0. Oszacuj wartość liczby pierwiastkowanej, jeśli: a) Q4 =12,347, b) Q4 =1,23410, c) Q4 =11012.
9. Oblicz metodą nieodtwarzającą z dokładnością do 5 cyfr znaczących pierwiastek kwadratowy z liczb:
a) 1010 0010 0111 11002, b) 123,4568, c) 10100 0100,1111 1002 d) 0,0000000371b (b = 2, 8, 10)
A* PokaŜ, Ŝe w naturalnym systemie dwójkowym dzielenie przez stałą, która jest sumą lub róŜnicą
dwóch potęg dwójki, moŜna wykonać przez odejmowanie, jeśli dzielenie nie wytwarza reszty.
B. Analitycznie i na podstawie wykresu dzielenia dwójkowego: a) odtwarzającego, b) nieodtwarzającego
wyznacz 3 kolejne cyfry ilorazu, jeŜeli znormalizowany dzielnik (1 ≤ D < 2) ma wartość i) D = 1,1012,
ii) D = 1,11012, a bieŜącą resztą (przed skalowaniem) jest: a) 0,3D, b) −0,2D, c) +0,7D.
C* Narysuj wykresy P-D dla dzielenia w bazie 4 (β = 4) i dzielnika z zakresu [1,2). Podaj ile bitów musi
być porównywanych w celu wyznaczenia cyfr ilorazu.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
3
Rok I
Lista nr 4
ARYTMETYKA KOMPUTERÓW
1. WykaŜ, Ŝe największy wspólny podzielnik dwóch liczb jest podzielnikiem ich róŜnicy.
2. Korzystając z twierdzenia Euklidesa znajdź największy wspólny podzielnik liczb:
a) 6745 i 8123
b) 9994, 92 i 9916
d) 220–1 oraz 25+1
c) 375, 243, 345 i 126
3. PokaŜ, Ŝe liczby 2k + 1 i 2k+1 +1 są względnie pierwsze (k ∈ N – jest liczbą naturalną).
*WykaŜ, Ŝe liczby 2n +1, 22n+1 +2 oraz 2n − 1 są względnie pierwsze z liczbą 22n +1 (n∈ N ).
*Kiedy prawdziwe jest twierdzenie, Ŝe liczby 2k + 1 i 2r + 1 (k ≠ r ∈ N ) są względnie pierwsze?
4. Na podstawie twierdzenia Eulera lub małego twierdzenia Fermata oblicz:
a) 13267 mod 63,
b) 172167 mod 19
c) 40167 mod 41
d) (17267 13267 )mod 55
5. Nie wykonując dzielenia wyznacz resztę z dzielenia liczby d 1011 0011 0111 1101U2 (d =0, 1) przez
a) 11112
b) 100012
c) 111112
d) 100000012
e) 1012.
6. Stosując reguły arytmetyki resztowej oblicz najmniejsze reszty całkowite (dodatnie lub ujemne) sumy,
róŜnicy i iloczynu liczb 46528 i 0ABCD16 względem modułów: 25710, 78 , 6510, 3F16, 1116, 0FF16
7. Podaj reprezentację liczby 2345610 w bazie RNS: a) {29, 30, 31}, b) {99, 100, 101}, c) {63, 64, 65}.
8* Znajdź odwrotności multyplikatywne iloczynów par modułów bazy systemu resztowego (a–1, a, a+1)
względem trzeciego z nich, zakładając, Ŝe a jest liczbą parzystą.
9. Znajdź jedynki resztowe w zbiorze kongruencji naturalnych (x∈[0, M)) w systemie RNS:
a) {29, 30, 31}
b) {99, 100, 101}
c) {63, 64, 65}
d)* {11, 13, 15, 16}
Znajdź liczbę, której reprezentacją resztową jest ((a),b),c)): (1, 2, 3), (d): (1, 2, 2, 1).
**RozwiąŜ zadanie w zbiorze kongruencji całkowitych (x∈ –(M–1) /2, M–1 /2))
A. Zapisz w 32-bitowym formacie zmiennoprzecinkowym standardu IEEE 754 liczby o wartościach:
a) 674,5318
b) 0,128 ⋅ 8-51
c) – 0ABC,DE16
d) 10,1010101010U2 ⋅ 4 -61
B. Zapisz w 32-bitowym formacie zmiennoprzecinkowym IEEE 754 pierwiastki kwadratowe z liczb:
a) 1010 0010, 0111 11002, b) 123,4568, c) 10100 0100, 1111 1002
C. Oblicz i zapisz w 32-bitowym formacie zmiennoprzecinkowym standardu IEEE 754 z dokładnością do
5 cyfr znaczących pierwiastki kwadratowe z liczb danych w tym formacie:
a) 0 0100 0100 111 1100 1010 0010 0111 1100, b) 0 1010 0101 1111 1010 0100 1111 1111 1002
c) 0 0100 0101 111 1100 1010 0010 0111 1100, d) 0 1010 0100 1111 1010 0100 1111 1111 1002
E. Wyznacz z dokładnością do 4 bitów ułamka zaokrąglenia argumentów 1,10111101101 i 1,1011110010
uzupełnione bitami G, R, X. Wykonaj ich mnoŜenie i porównaj z wynikiem pełnego mnoŜenia.
F* WykaŜ, Ŝe w dodawaniu (mnoŜeniu) zmiennoprzecinkowym znormalizowanych operandów, bit X dla
znormalizowanej sumy (iloczynu) moŜe być wyznaczony przed wykonaniem działania.
G* Oszacuj maksymalny błąd przybliŜenia róŜnicy podczas odejmowania znormalizowanych operandów
obliczonych z taką samą dokładnością bezwzględną znacznika (mantysy).
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
4
Rok I
Lista nr 5
ARYTMETYKA KOMPUTERÓW
1. Stosując reguły działań w algebrze Boole’a uprość poniŜsze wyraŜenia
a) x +(x ⊕ y)
b) xyz +(x ⊕ y)+(z ⊕ y)
g) [z ⋅ f(x)+(z ⊕ f(x))] f(x)
c) x +~ xy + xyz
d) zy +(x ⊕ y) e) zx + z (x ⊕ 1) f) x + xy +(x ⊕ yz)
h) (g(x)+ z ⊕ f(x))+z f(x)(1 ⊕ g(x)
2* PokaŜ, Ŝe kaŜdą funkcję logiczną moŜna wyrazić za pomocą funkcji NOR albo funkcji NAND.
3. Wyznacz funkcje dualne i komplementarne do funkcji f 1 (x) = x 2 x1 + x3 x 2 i f 2 (x) = x3 x1 + x3 ( x 2 + x1 ) ,
oraz (f1+f2)(x) i (f1 f2)(x). Narysuj stosowne sieci logiczne. Na podstawie twierdzenia Shannona rozwiń
funkcje (f1+f2)(x), (f1 f2)(x) i (f1⊕f2)(x) względem zmiennej x3.
4* PokaŜ, Ŝe charakterystyki AT sieci realizujących funkcję dualną i komplementarną są jednakowe.
5* Narysuj schemat logiczny sumatora 1-bitowego, którego wyjścia sumy i przeniesienia są wytwarzane
z uŜyciem multiplekserów sterowanych przeniesieniem wejściowym na podstawie funkcji sumy
i przeniesienia zerowego i jedynkowego s0 , s1 , c0 , c1 . Wyznacz charakterystyki AT tego układu.
6. Oblicz charakterystyki AT uniwersalnych sumatorów kaskadowych RCA dla kodów k-bitowych:
a) uzupełnieniowego pełnego (U2)
b) uzupełnieniowego niepełnego (U1)
d) spolaryzowanego ujemnie „+2k–1”
e) spolaryzowanego dodatnio „+2k–1–1”
c) znak-moduł,
7. Zaproponuj sposób kodowania cyfr i zaprojektuj sumator jedno- i cztero-pozycyjny dla systemu
a) U10 z kodowaniem cyfr w kodzie „+3” i kodzie BCD
b) dwójkowego negabazowego (β = –2),
c)* naturalnego trójkowego (β = 3) i dwójkowego z cyfrą znakowaną SD (D={–1,0,+1})
8. Oblicz charakterystyki AT sumatora 24-bitowego z przeniesieniami przeskakującymi (carry-skip) jeśli
ma on strukturę a) 3-4-4-3-4-4-2, b) 3-3-4-4-4-3-3, c) 4-4-4-4-4-4, d) 6-6-6-6, e) optymalną.
9. Zaprojektuj 4- i 8-bitowy sumator sum warunkowych i wyznacz ich charakterystyki AT.
A* Zaprojektuj 4- i 8-bitowy sumator prefiksowy PPA w strukturze Ladnera-Fischera i Hana-Carsona.
Wyznacz funkcje wytwarzania (G*) i przekazywania (P*) przeniesień na kolejnych poziomach bloku
generowania przeniesień. **Wyznacz charakterystyki AT sumatora k-bitowego.
B. Zaprojektuj 8-bitowe układy inkrementacji i dekrementacji liczby zakodowanej w kodzie U2. Wyznacz
charakterystyki AT zaprojektowanych układów.
C. Zaprojektuj uniwersalny układ realizujący skalowanie liczby 8-bitowej w kodzie U2 przez 2, ½ oraz ¼.
Wyznacz charakterystyki AT tego układu. Wskazówka: Zrealizuj układ jako przesuwnik kaskadowy
(barrel shifter) z uŜyciem multiplekserów 2-wejściowych. Pamiętaj o pozycjach rozszerzenia.
D* Zaprojektuj uniwersalny sumator, którego wejścia są zakodowane w dwójkowym kodzie naturalnym,
a wyjścia w kodzie znak-moduł.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
5
Rok I
Lista nr 6
ARYTMETYKA KOMPUTERÓW
1. W celu dodania n operandów k-bitowych uŜyto sumatora CSA (carry-save). Ile bitów zawiera suma?
Jakie jest opóźnienie (T) dodawania, jeśli końcowy wynik wytwarza sumator:
a) kaskadowy RCA,
b) prefiksowy PPA
c) sum warunkowych COSA.
Obliczenia wykonaj dla n = 7, 15, 31 oraz k = 8, 16, 32.
2. Ile poziomów musi zawierać sumator CSA uŜyty do redukcji iloczynów częściowych tworzonych
w mnoŜeniu liczb 32-bitowych w kodzie naturalnym (NB)? Ile sumatorów elementarnych (3,2)
zawiera najbardziej skomplikowana gałąź CSA odpowiadająca bitom o tej samej wadze.
3. Zaprojektuj sumator CSA dodający odpowiednio 3, 4 i 8 operandów 4-bitowych w kodzie U2.
4. Wyznacz, uwzględniając czas końcowego dodawania, najkrótszy czas dodawania 32 operandów 64bitowych w sumatorze CSA jeśli dysponujesz:
a) reduktorami (3,2) generującymi przeniesienia 1-bitowe, wnoszące opóźnienia T = 4 kaŜdy
b) *reduktorami (4,2) generującymi przeniesienia 2-bitowe, wnoszące opóźnienia T = 6 kaŜdy
5. Oblicz charakterystyki AT matrycy mnoŜącej dwa operandy: a) 4-bitowe, b) 8-bitowe c)* n-bitowe
6* Zaprojektuj matrycę mnoŜącą operandy 4-bitowe w kodzie U2 z wykorzystaniem przekodowania
mnoŜnika w bazie 4 (wg reguły Bootha-McSorley’a). Porównaj z innymi układami matrycowymi.
7. Oblicz charakterystyki AT sumatora CSA uŜytego do redukcji iloczynów częściowych w mnoŜeniu
operandów 4-, 8- bitowych danych: a) w kodzie NB, b) w kodzie U2 z eliminacją bitów rozszerzenia.
*Podaj oszacowanie charakterystyk AT dla mnoŜenia operandów n-bitowych.
8. Oblicz charakterystyki AT matryc dzielących operandy 8-bitowe w kodzie NB i U2
9* Zaprojektuj układ mnoŜenia akumulacyjnego (pomnóŜ i dodaj) operandów 8-bitowych w kodzie U2
wykorzystujący matrycę mnoŜącą. Porównaj z innymi układami matrycowymi.
B* Opracuj i uzasadnij algorytmy konwersji dwójkowo–dziesiętnej liczb całkowitych dodatnich, bez
wykonywania dzielenia, jeśli cyfry dziesiętne są kodowane: a) w kodzie BCD, b) w kodzie BCD+3.
C* Zaprojektuj generator reprezentacji resztowej liczby całkowitej 8- i 16-bitowej w kodzie NB
a) mod 11112 b) mod 100012
c) mod 1112
d) mod 10012
D* Zaprojektuj generator reprezentacji resztowej liczby całkowitej 8- i 16-bitowej w kodzie U2
a) mod 11112 b) mod 100012
c) mod 1112
d) mod 10012
E. Zaprojektuj sumator mod (28–1) dwóch liczb całkowitych 8-bitowych w kodzie U2.
F* Zaprojektuj sumatory mod (24–1) i mod (24+1) 4 liczb całkowitych 4-bitowych w kodzie U2.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
6
Rok I
Lista nr 7
ARYTMETYKA KOMPUTERÓW
1. Oblicz metodą Newtona odwrotność dzielnika 1,1011012 z dokładnością do 16 bitów.
2. Oblicz metodą Newtona odwrotność pierwiastka kwadratowego z 102 . z dokładnością do 16 bitów.
3. Oblicz metodą uzbieŜniania iloraz 3,14168 :2,71638.
4. Opracuj algorytm obliczania pierwiastka kwadratowego z liczby całkowitej na podstawie toŜsamości:
„suma n kolejnych nieparzystych liczb naturalnych jest równa kwadratowi z ich liczby” (np. 1+3+5=32
1+3+5+7=42, 1+3+5+7+9=52 itd.).
*Oceń czas obliczeń i porównaj z algorytmem klasycznym („kolejnych reszt”) w wersji podstawowej
i nierestytucyjnej. Zaproponuj ulepszenie algorytmu dla duŜych argumentów.
*Określ minimalny czas obliczeń, jeśli liczba jest zakodowana odpowiednio na 8, 16, 32 bitach.
5* Oceń czas obliczania pierwiastka trzeciego stopnia na podstawie algorytmu opartego na zaleŜności:
n 3 − n = ∑ (3 ⋅ i 2 − 3 ⋅ i ) = 3∑ (i ⋅ (i − 1)) = 3∑∑ 2i = 6∑∑ i
n
n
i =1
i =1
n
j −1
j =1 i =0
n −1
j
j =1 i =1
6* Oszacuj liczbę kroków algorytmu CORDIC potrzebnych do obliczenia wartości funkcji exp, ln, sin,
cos, arctg dla argumentu z przedziału [–1,1] z dokładnością do 32 bitów części ułamkowej.
7. Korzystając z przybliŜenia (1–x)–1 = 1+x+x2+... oraz (1+x)–1 = 1–x+x2–x3+... oblicz odwrotności dla
poniŜszych reprezentacji zmiennoprzecinkowych. Określ wartości bitów GRS. Oceń dokładność
przybliŜenia i podaj warunki stosowalności algorytmu.
Wskazówka: Sprawdź przydatność przybliŜeń dla róŜnych rozwinięć części ułamkowej (mnoŜników
o postaci 2−f oraz 1+f, gdzie f jest małym ułamkiem.
8.*Korzystając z rozwinięcia w szereg Taylora (McLaurina) podaj algorytm obliczania przybliŜenia
odwrotności liczby w formacie zmiennprzecinkowym o postaci 1±ax, gdzie a=2q. Określ warunki
stosowalnosci algorytmu i sposób wyznaczania wartości bitów GRX. Oceń dokładność przybliŜenia.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
7
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 1
1. Znajdź podstawę x systemu naturalnego, w którym: a)
41x = 5 , b)
22 x = 4 c) a2 =301x , d) b2 =562x
Wskazówka: a) i b) Po podniesieniu stron równości do kwadratu, rozwiązać ze względu na nieznaną
podstawę. Oczywiście musi ona być większa od największej cyfry występującej w równaniu (wartości
cyfr <10 są takie jak w systemie dziesiętnym). Na przykład 5x×5x =41x, czyli 25=4x+1, więc x=6.
Jeśli liczba pierwiastkowana ma k cyfr, to trzeba rozwiązać równanie stopnia k–1 względem x.
c) I sposób: Mamy równanie a2 = 3x2+1, skąd x2=(a+1)(a−1)/3. Wynika stąd, Ŝe a musi być parzyste
lub a=6k−1 lub a=6k+1. Musi być teŜ a>x. Na przykład gdy a=7, to x=4 (7=134), itd
II sposób: Kwadrat jest liczbą trzycyfrową, więc a musi być liczbą dwucyfrową, a jej starszą cyfrą
musi być 1 (bo x2 <301x = 3x2+1<(2x)2). Mamy stąd równanie (x+z)2 = 3x2+1, czyli 2x2–2zx +(1–z2)= 0.
Jedno z rozwiązań musi być ujemne (wzory Viete’y – iloczyn pierwiastków (1–z2)/2 jest ujemny).
PoniewaŜ oba rozwiązania muszą być teŜ całkowite (ich suma wynosi z), to wystarczy badać wartości
nieparzyste z (3,5,7,...). I tak przy z=3 otrzymamy x=4 (lub –1), gdy z=11 to x=15 (lub –4).
d) starszą cyfrą liczby b jest 2, bo (2x)2 < 562x= 5x2+6x+2 <(3x)2). Mamy stąd równanie parametryczne
(2x+z)2 = 5x2+6x+2, czyli x2+(6–4z)x+(2–z2)=0 z warunkami: x > 6 , z<x oraz z ≠ 1 (bo wtedy x =−1).
Dla x=7 otrzymujemy (2⋅7+z)2=289, skąd z=3.
Jeśli kwadrat jest liczbą k-cyfrową, to trzeba analizować równanie stopnia k–1 względem podstawy β.
2. Znajdź podstawę β systemu naturalnego, w którym liczby naturalne x1 oraz x2 są rozwiązaniami
równania ax2+ bx+c = 0. Wykonaj obliczenia dla x1 = 5β , x2 = 8β i równania 5β x2– 50β x+125β = 0
Wskazówka: PoniewaŜ znamy pierwiastki, więc na podstawie wzorów Viete’y naleŜy ułoŜyć równania ze
względu na β . W tym zadaniu mamy 5β ( x1 +x2) = 50β , skąd natychmiast wynika (5β ×10β =50β ) Ŝe x1
+x2 = 10β = β . Trzeba jeszcze sprawdzić, czy 513×(513×813) = 12513 (OK., bo 132+2×13+1 = 200).
*Jeśli rozwiązania równania x2– 15β x+53β = 0 są naturalne, to x1 + x2 = β + 5 oraz = x1 x2 = 5β + 3.
Musi więc być x1 > 5 oraz x2 < β (w przeciwnym razie jeden musi być ujemny) Jeśli x1 = 6 , x2 = β − 1 ,
to β = 9 . (powinny być dwa symetryczne rozwiązania dla x1 oraz x2 – jedno rozwiązanie dla β ).
3**Znajdź podstawę systemu naturalnego, w którym równanie ax2 +bx+c=0 (a,b,c ∈ ) ma pierwiastki
całkowite. RozwiąŜ zadanie zakładając, Ŝe a,x1,x2 są liczbami jednocyfrowymi, b = b1β+b0 jest liczbą
dwucyfrową, zaś c = c2β 2+c1β+c0, c2 = 0 lub 1. Wykonaj obliczenia dla x1 = 5β , x2 = 8β oraz a = 1 i 3.
Wskazówka: Na podstawie wzorów Viete’y ułoŜyć układ równań względem podstawy β i nieznanego
drugiego pierwiastka x2: – a (x1 + x2) = b oraz a x1 x2= c. Pierwiastki całkowite są podzielnikami liczby
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
8
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
c, co pozwala określić dozwolony zakres ich wartości. Powstałe przypadki naleŜy przeanalizować
(łatwo to zrobić gdy pierwiastki są jednocyfrowe), zbadać teŜ wyróŜnik ∆. … … …
4. WykaŜ, Ŝe w standardowym systemie naturalnym o podstawie β suma wartości cyfr iloczynu liczby
jednocyfrowej przez β − 1 jest stała. UłóŜ tabliczki mnoŜenia w systemach o bazie β = 5, 7, 9, 11, 13.
Wskazówka: x × ( β – 1 ) = ( x – 1 ) β + ( β – x ), zaś ( x – 1 ) + ( β – x ) = β – 1. Sąsiednie wielokrotności m
najłatwiej obliczyć wykonując dodawanie lub odejmowanie: m⋅(a ± 1) = m⋅a ± m.
5. WykaŜ, Ŝe w dowolnym systemie naturalnym suma cyfr iloczynu dowolnej liczby jednocyfrowej przez
największą liczbę dwucyfrową |{β–1, β–1}|β jest stała. *Uogólnij wynik dla k⋅|{β–1, … , β–1, β–1}|β
Wskazówka: x×|{(β–1),(β–1)}| = x×(β 2–1)=(x–1)β 2+ β(β–1)+(β–x). Podobnie x×|{(β–1),…(β–1),(β–1)}|=
= x×(β k–1) = (x–1)β k +(β–1)β k–1 +…+β(β–1)+(β–x) , zatem suma cyfr wynosi k(β–1).
6. Oblicz metodą pisemną iloczyn 0,324β × 2,41β i iloraz 43,4β : 3,2β dla β = 5, 7, 9, 11, 13 oraz dla β = α2,
korzystając z tabliczki mnoŜenia w systemie o podstawie α = 3, 4.
Wskazówka: Jeśli α = β 2, to {z,…,x}α= {(z div β),( z mod β),…,(x div β),( x mod β)}β, np. 0,539 = 0,12103
7. Przeprowadź konwersje podstawy (bazy), z dokładnością do 4 cyfr części ułamkowej wyniku:
a) 674,58110 = (…)16 = (…)4
b) 0CD,1216 = (…)2= (…)10
c) 3,0128 = … (…)2 …= (…)16
d) 34,5610 ×2–5 = (…)2 = (…)16
e) 102,213×5–2 = (…)5
f) 0BACA16 ×5–3 = (…)10
g) 6745,819 = (…)7 = (…)10
h) 0AA,1211 = (…)10 = (…)9
i) 102,213×15–2 = (…)5
j) 347/567 = (…)2
k) 234,(56)9 = (…)7
l) 12,3(45)7 = (…)10 = (…)11
Wskazówka: Konwersja przez podstawę skojarzoną (α = β k) przyśpiesza obliczenia – wyznaczamy k cyfr
w kaŜdym kroku (np. konwersję na system dwójkowy łatwo wykonać przez system ósemkowy). Jeśli
mnoŜnik jest potęgą podstawy źródłowej, to skalowanie naleŜy wykonać przed konwersją, a jeśli jest
potęgą bazy docelowej, skalowanie przeprowadzić po konwersji. Konwersję ułamka wymiernego (po
skróceniu) wykonać jako konwersję licznika i mianownika (zawsze dokładna) a następnie dzielenie
z Ŝądaną dokładnością. Ułamek okresowy naleŜy zamienić na ułamek wymierny, albo uŜywając kilku
(>2) cykli okresu zaobserwować regularność zapisu wielokrotności ułamka.
8* WykaŜ, Ŝe jeśli istnieje nierozkładalny podzielnik podstawy źródłowej, który nie jest podzielnikiem
podstawy docelowej, to wynikiem konwersji ułamka skończonego w systemie o danej podstawie, na
reprezentację w innym systemie naturalnym jest ułamek okresowy.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
9
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Wskazówka: Znajdź licznik ułamka danego w bazie β w bazie pβ gdy (p,β)=1. (dowód podobnego
twierdzenia podano w ksiąŜce „Metody i układy arytmetyki komputerowej”). Twierdzenie jest
fałszywe, bowiem są przypadki gdy tak nie jest np. 0,510 = 0,12, ale np. 0,110 = 0,(00011)2.
9. Znajdź system o najmniejszej podstawie, w którym reprezentacja danego ułamka jest skończona:
a) 0,(27)10 =
b) 0,(101)2 =
c) 1 – 0,(56)9 =
d) 0,(35)11 – 0,(2)11 =
e) 0,1(23)7=
Wskazówka: Wartość ułamka okresowego jest równa granicy szeregu nieskończonego. NaleŜy obliczyć tę
granicę w postaci ułamka wymiernego, skrócić go i wtedy mianownik jest szukaną podstawą systemu
a licznik wyznacza wartość ułamka w systemie o tej podstawie. Na przykład 0,(3)10 = 0,3 + 0,03 + … =
= 0,3 / ( 1 – 0,1 ) = 1/3 = 0,13, c) 1 – 0,(56)9 = 0,(32)9 , d) 0,(35)11 – 0,(2)11 = 0,(35)11 – 0,(22)11 = 0,(13)11
A. WykaŜ, Ŝe w systemie naturalnym przeniesienie otrzymane podczas dodawania lub poŜyczka podczas
odejmowania na kaŜdej pozycji są zawsze równe 0 lub 1.
Dowód: PoniewaŜ największą liczbą jest β –1, więc ich największą sumą jest β +(β –2), co oznacza
wystąpienie przeniesienia =1. Jeśli tę liczbę zwiększymy o 1 przeniesienie będzie bez zmian.
PoniewaŜ na pozycji najniŜszej przeniesienie jest równe 0, więc nie moŜe wystąpić przeniesienie inne
niŜ 0 lub 1.
B. Opracuj algorytm dodawania lub odejmowania liczb znakowanych zapisanych w systemie znak-moduł
(SM). Przyjmij, Ŝe znak liczby jest kodowany standardowo (0 – plus, 1 –minus).
Wskazówka: Sprawdź, jakie działanie naleŜy faktycznie wykonać w zaleŜności od znaków argumentów.
Wskazówka: Dla zadanego zbioru cyfr opracuj tabliczki działań. Sprawdź poprawność tego zbioru.
Zbadaj problem przeniesienia. ZauwaŜ, Ŝe jeśli zbiór cyfr jest niestandardowy, to nie ma gwarancji
wytworzenia poprawnej cyfry wyniku na Ŝadnej pozycji i konieczna jest korekcji cyfr na pozycjach.
D. Oblicz odpowiednio wartości największej i najmniejszej liczby całkowitej, reprezentowanych przez
łańcuch k cyfr w systemie a) naturalnym o podstawie β b) negabazowym, c) z cyframi znakowanymi,
d)* uzupełnieniowym pełnym i niepełnym, e)* spolaryzowanym „+1/2β k–1” oraz „+1/2β k–1–1”.
Odpowiedź: Podstaw do ogólnego wzoru wartości odpowiadające skrajnym liczbom – w systemie
naturalnym i spolaryzowanym odpowiednio zero lub największą cyfrę na kaŜdej pozycji, w systemach
uzupełnieniowych odpowiednio {β/2 –1, β –1, …, β –1} dla podstaw parzystych oraz {β/2, 0, …, 0}
dla nieparzystych, tak aby zakres był symetryczny.
E* WykaŜ, Ŝe w systemach uzupełnieniowych pełnych o bazach skojarzonych konwersję podstawy moŜna
wykonać przez grupowanie (β → β S ) lub dekompozycję cyfr (β S → β ).
Wskazówka: Liczby ujemne zapisz w konwencji znak-moduł lub (lepiej) uŜyj pozycji rozszerzenia.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
10
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 2
1. Zapisz w systemie uzupełnieniowym do 2 (U2) z czterema bitami części ułamkowej liczby:
a) – 674,58110
b) – 0A,1216
c) – 3,0128
d) + 34,5610
e) 4,5610 – 4,5(6)10
Porównaj otrzymane kody z notacją w systemie uzupełnieniowym do 1 (U1) i systemie znak-moduł.
Wskazówka: I) Zapisz wartość bezwzględną, roszerzając ją lewostronnie zerem (w systemie znak-moduł
rozszerzenie jest zbędne), potem wykonaj „wchłonięcie” znaku – w systemie U1 negując wszystkie
bity, w systemie U2 odejmując od 0 (lub mnemotechnicznie). II)*Liczbę zapisz jako Z+f, 0<f<1
Konwersja liczby całkowitej Z moŜe być wykonana bezpośrednio (kolejne ilorazy mają taki znak jak
liczba, procedura kończy się gdy kolejne cyfry są cyframi rozszerzenia (lub uzyskamu iloraz –1).
2. Dodaj i odejmij liczby 4-cyfrowe podane w dziesiętnym uzupełnieniowym systemie pełnym (U10):
a) 6745 ± 8123
b) 9,745 ± 0,8(23)
c) 31,56± 84,23
d) 9,994± 9,916
UŜywając lewostronnego rozszerzenia zweryfikuj poprawność wyników otrzymanych na 4 pozycjach.
Uwaga: Dodawanie jak w systemie dziesiętnym, rozszerzeniem dodatniej jest „0”, ujemnej „9”. Jeśli
wynik bez cyfry rozszerzenia oznacza tę samą liczbę co z cyfrą rozszerzenia nie wystąpił nadmiar. Na
przykład (9)6745 + (9)8123= (9)4858 jest ujemne ale 4858 jest dodatnie, zatem wystąpił nadmiar.
Poprawne zaokrąglenie w b) wymaga uŜycia 2 cykli okresu.
3* WykaŜ, Ŝe w dodawaniu lub odejmowaniu w systemie stałobazowym i uzupełnieniowym uŜycie cyfr
lewostronnego rozszerzenia operandów wystarczy do wykrycia nadmiaru (przekroczenia zakresu).
Wskazówka: Zakres argumentów z uŜyciem pozycji rozszerzenia jest większy od oryginalnego, tyle razy,
jaka jest podstawa. Zatem wynik z rozszerzeniami jest zawsze poprawny. Rozszerzenie wyniku jest
zbędne, jeśli nie zostanie przekroczony oryginalny zakres, więc wystarczy to sprawdzić.
4. Wykonaj zmianę znaku liczby danej w quasi-symetrycznym kodzie spolaryzowanym +2k oraz +2k−1
a) 10101001
b) 0101010
c) 1100001
c) 00110101
Wskazówka: Opracuj algorytm. Sprawdź, Ŝe w kodzie +2k algorytm jest identyczny jak w kodzie
uzupełnieniowym (zaneguj wszystkie bity i dodaj ulp, czyli 1 – reprezentowane są tylko całkowite),
zaś w kodzie +2k−1 po negowaniu bitów naleŜy wykonać odejmowanie 1)
5. Zakładając, Ŝe podane 8-bitowe sekwencje zero-jedynkowe reprezentują liczby w kodzie
a) naturalnym (NB)
b) uzupełnieniowym pełnym (U2)
c) uzupełnieniowym niepełnym (U1)
d) znak-moduł (SM)
e) spolaryzowanym „+28–1–1”
f) spolaryzowanym „+28–1”.
oblicz sumę i róŜnicę liczb o kodach: i) 10011101 i 01111001, ii) 11011101 i 10111101. Sprawdź
poprawność wyników wykonując działanie odwrotne (suma – argument, róŜnica + odjemnik)
Wskazówka: W systemach spolaryzowanych wygodnie jest wykonać konwersję na system U2.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
11
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
6. Znając kilka najbardziej znaczących bitów liczb n-bitowych w kodzie uzupełnieniowym U2, sprawdź,
czy w ich dodawaniu i odejmowaniu wystąpi nadmiar:
a) 11101010..?? ± 10011110..??
b) 1011010..?? ± 1001110..??
c) 011101..?? ± 11011001..??
Wskazówka: Znajdź najwyŜszą pozycję na której jest wytwarzane przeniesienie w dodawaniu (1+1) albo
poŜyczka w odejmowaniu (0–1), a następnie (wynik na pozycjach wyŜszych od znalezionej nie zaleŜy
od stanu pozycji niŜszych) zbadaj 2 najwyŜsze przeniesienia lub celowość uŜycia bitów rozszerzenia.
7. Korzystając z zaleŜności X − Y = X + Y i zakładając, Ŝe liczby są dane w systemie naturalnym, oblicz:
a) 6745 – 8123
b) 9,745 – 0 , 823
c) 34,56– 81,23
d) 100111012 – 011110012
Sprawdź otrzymane wyniki wykonując działania odwrotne (róŜnica + odjemnik).
Uwaga: NaleŜy sprawdzić, czy nie powstaje nadmiar (w systemie naturalnym wynik musi być dodatni!).
8. WykaŜ, Ŝe w systemie naturalnym lub uzupełnieniowym pełnym mnoŜenie liczb m–pozycyjnych nie
powoduje nadmiaru, jeśli wynik jest kodowany na co najmniej 2m pozycjach.
Wskazówka: Zakresem iloczynu jest [0, (β m–1 )2]= [0, β 2m–2β m +1<β 2m–1]
9. Wynik mnoŜenia m–bitowych liczb w kodzie U2 jest kodowany na 2m–1 bitach. Czy jest moŜliwe
wystąpienie nadmiaru, a jeśli tak to przy jakich wartościach mnoŜnej i mnoŜnika?
Wskazówka: Zakresem iloczynu jest [–2m–1×(2m–1–1), (–2m–1)2]= [–22m–2+2m–1, 22m–2]. Liczba 22m–2 musi
być zakodowana na 2m bitach, dla pozostałych wystarczy 2m–1 bitów.
A. Wykonaj mnoŜenie liczb w dwójkowym kodzie uzupełnieniowym pełnym (U2) uŜywając bitów
rozszerzenia i stosując przekodowanie iloczynów częściowych eliminujące rozszerzenia:
a) 110101×011011
b) 011101×110111
c) 101001×111111
d) 1101010×1111101.
Uwaga: Iloczyn odpowiadający najwyŜszemu bitowi mnoŜnika ma wagę ujemną. Pamiętaj o bitach
rozszerzenia. Zwróć uwagę na poprawne kodowanie zera i przekodowanie iloczynu częściowego
odpowiadającego najwyŜszemu bitowi mnoŜnika. Nie zapomnij o korekcji wyniku.
B. PokaŜ, Ŝe w systemie naturalnym dwójkowym i systemie uzupełnieniowym do 2 mnoŜenie przez stałą,
która jest sumą lub róŜnicą potęg dwójki moŜna wykonać jako dodawanie skalowanej mnoŜnej.
Rozwiązanie: Oczywiste, to jest po prostu zwykły sekwencyjny algorytm mnoŜenia.
C. Oblicz iloczyn liczb 4-cyfrowych podanych w dziesiętnym uzupełnieniowym systemie pełnym (U10):
a) 6745U10 × 8123U10 b) 9745U10 × 0823 U10
c) 3156 U10 × 8423 U10
d) 9994 U10 × 9916 U10
a) 5745U8 × 7123U8
c) 3156 U8 × 6423 U8
d) 7774 U8 × 7716 U8
b) 7745U8 × 0723 U8
Wskazówka: Wartość przypisana najbardziej znaczącej cyfrze liczby ujemnej jest ujemna i wynosi d − β,
gdzie d jest standardową wartością cyfry (|”β −1”| = β −1− β = −1) (w systemie U10 |”9”| = −1).
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
12
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 3
1. Zakoduj na 8 bitach według prostej i alternatywnej reguły Booth’a i Booth’a-McSorley’a:
a) –81710
b) +132110
c) 101111012
d) 1011101U2
e)* 1011101(–2)
Wskazówka: Najpierw zapisz liczby w systemie U2.
2. UŜywając przekodowania Booth’a oraz Booth’a-McSorley’a i przyjmując, Ŝe operandy są w kodzie
A) dwójkowym naturalnym, B) uzupełnieniowym U2, C)* dopełnieniowym U1, oblicz iloczyny:
a) 11000101×01110011 b) 011101×11011110
c) 101001×1011111
d) 010011×010111110.
Wskazówka: Nie zapomnij o bitach rozszerzeń. W kodzie U1 uwzględnij eac (przeniesienie okręŜne)
3. Wykonując dzielenie odtwarzające (metodą sekwencyjną „kolejnych reszt”) oblicz z dokładnością do 4
pozycji znaczących iloraz liczb reprezentowanych w systemie uzupełnieniowym pełnym
a) 01010011U2 : 1011U2 b) 1010011U2 : 01011U2
c) 576U10 : 176U10
d) 424U10 : 824U10
e) 6465U10 : 353,5U10
g) 5465U10 : 150,7U10
h) 2465U8 : 753,5U8.
f) 6465U8 : 353,5U8
Sprawdź poprawność otrzymanych wyników wykonując mnoŜenie.
Wskazówka: Nie zapomnij o skalowaniu, tak aby |D/2|<|Xβ –p|<|D|, co pozwoli teŜ uniknąć generowania
nieznaczących bitów. ZauwaŜ, Ŝe po skalowaniu iloraz jest ułamkiem właściwym (0+f lub –1+f).
4. Wykonaj w kodzie U2 z dokładnością do 5 cyfr znaczących ilorazu dzielenie nieodtwarzające liczb:
a) 110101 : 011011
b) 011101 : 110111
c) 101001 : 11111
d) 101001 : 10011,
e) 1,10101 : 01101,1
f) 0,11101 : 110,111
g) 1010,01 : 111,11
h) 101001 : 100,11.
Sprawdź, wykonując mnoŜenie, poprawność otrzymanych wyników.
Wskazówka: Przeskaluj dzielnik (dzielną) tak, aby iloraz był ułamkiem.
5. Oblicz metodą nieodtwarzającą z dokładnością do 4 cyfr znaczących iloraz liczb naturalnych (NB):
a) 1101012 : 0110112
b) 0111012 : 1101112
c) 1010012 : 111112
d) 1010012 : 100112,
e) 1,101012 : 01101,12
f) 0,111012 : 110,1112
g) 1010,012 : 111,112
h) 1010012 : 100,112.
Wskazówka: Przeskaluj dzielnik (dzielną) tak, aby iloraz był ułamkiem. Wykonaj pierwsze działanie
stosownie do znaków dzielnej i dzielnika (dodaj dzielnik gdy znaki są przeciwne).
6. Oblicz metodą sekwencyjną („kolejnych reszt”) pierwiastek kwadratowy z liczb
a) 1234567, b) 1010 0010 0111 11002, c) 98765432110 d) 123,4567, e) 10100 0100,1111 1002
z dokładnością do jednej, dwóch i siedmiu cyfr znaczących oraz podaj trzecią i czwartą resztę.
Uwaga: Zwróć uwagę na poprawne wstępne skalowanie.
7. Dane są 3 cyfry przybliŜenia pierwiastka kwadratowego i trzecia reszta. Podaj dwie kolejne cyfry, jeśli:
a) Q3 =1237, r3 =34567, b) Q3 =12310, r3 = 345610, c) Q3 =1012, r3 =111012,
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
13
Rok I
ARYTMETYKA KOMPUTERÓW
rozwiązania
Wskazówka: Przeanalizuj nierówność, która jest podstawą obliczenia czwartej cyfry ilorazu – występuje
w niej podwojone skalowane trzecie przybliŜenie Q3 oraz reszta r3 :
8. Dane jest przybliŜenie pierwiastka kwadratowego z dokładnością do 4 cyfr znaczących i czwarta reszta
równa 0. Oszacuj wartość liczby pierwiastkowanej, jeśli: a) Q4 =12,347, b) Q4 =1,23410, c) Q4 =11012.
Wskazówka: Przeanalizuj nierówność, która jest podstawą obliczenia piątej cyfry ilorazu – występuje
w niej podwojone skalowane czwarte przybliŜenie Q4 oraz reszta r4. Zastanów się jaka musiała być
czwarta reszta, jeśli piąta jest zerem. ZauwaŜ, Ŝe moŜe istnieć wiele rozwiązań.
9. Oblicz metodą nieodtwarzającą z dokładnością do 5 cyfr znaczących pierwiastek kwadratowy z liczb:
a) 1010 0010 0111 11002, b) 123,4568, c) 10100 0100,1111 1002
A* PokaŜ, Ŝe w naturalnym systemie dwójkowym dzielenie przez stałą, która jest sumą lub róŜnicą
dwóch potęg dwójki, moŜna wykonać przez odejmowanie, jeśli dzielenie nie wytwarza reszty.
Wskazówka: Przyjmij dla uproszczenia, Ŝe stałą jest 2m–1±1. ZauwaŜ, Ŝe wtedy X = (2m–1±1)Q, skąd
wynika, Ŝe Q = ± (X–2m–1Q), zatem wartości (k–1) najniŜszych bitów ilorazu są takie jak najniŜsze
bity dzielnej, a drugi argument odejmowania lub dodawania na wyŜszych pozycjach jest sekwencyjnie
wyznaczany jako wartość o (k–1) pozycji niŜszego bitu obliczonych juŜ pozycji ilorazu.
B. Analitycznie i na podstawie wykresu dzielenia dwójkowego: a) odtwarzającego, b) nieodtwarzającego
wyznacz 3 kolejne cyfry ilorazu, jeŜeli znormalizowany dzielnik (1 ≤ D < 2) ma wartość i) D = 1,1012,
ii) D = 1,11012, a bieŜącą resztą (przed skalowaniem) jest: a) 0,3D, b) −0,2D, c) +0,7D.
Wskazówka: a) rozwiąŜ dwa kolejne równania dzielenia; b) zaznacz resztę na osi odciętych i graficznie
znajdź kolejną resztę (pierwsze odwzorowanie wg odcinka „q=2”), przeskaluj ją i powtórz czynności.
C* Narysuj wykresy P-D dla dzielenia w bazie 4 (β = 4) i dzielnika z zakresu [1,2). Podaj ile bitów musi
być porównywanych w celu wyznaczenia cyfr ilorazu.
Wskazówka: Zaplanuj dokładność wykresu i odpowiednio wrysuj linie graniczne, pamiętając o
dokładności wykresu.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
14
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 4
1. WykaŜ, Ŝe największy wspólny podzielnik dwóch liczb jest podzielnikiem ich róŜnicy.
Wskazówka: Reszta jest wynikiem wielokrotnego odejmowania mniejszej od większej – tyle razy ile
wynosi iloraz. RóŜnica jest więc równa wielokrotności mniejszej liczby + reszta...(XmodY=X– kY<Y)
2. Korzystając z twierdzenia Euklidesa znajdź największy wspólny podzielnik liczb:
a) 6745 i 8123
b) 9994, 92 i 9916
d) 220–1 oraz 25+1
c) 375, 243, 345 i 126
Wskazówka: Zastosuj twierdzenie Euklidesa b) NWD(a,b,c)= NWD(NWD(a,b), NWD(b,c))
3. PokaŜ, Ŝe liczby 2 k + 1 i 2 k + 1 + 1 są względnie pierwsze (k ∈ N – jest liczbą naturalną)
*WykaŜ, Ŝe liczby 2n +1, 22n+1 +2 oraz 2n −1 są względnie pierwsze z liczbą 22n +1 (n∈ N ).
**Kiedy prawdziwe jest twierdzenie, Ŝe liczby 2 k + 1 i 2 r + 1 (k , r ∈ N ) są względnie pierwsze?
Wskazówka: Zastosuj twierdzenie Euklidesa. ZauwaŜ, Ŝe 2 k + 1 = 2 ×2 k = 2 k + 2 k
* Wykorzystaj związki potęg oraz wzory skróconego mnoŜenia.
**Twierdzenie nie jest zawsze prawdziwe – kontrprzykład – (21+1,23+1) = 3.
Udowodnij, Ŝe gdy k jest nieparzyste, to NWD(2k+1, 2k+2+1)=3 i NWD(2kp+1, 2p+1)=2p+1, itp.
4. Na podstawie twierdzenia Eulera lub małego twierdzenia Fermata oblicz:
a) 13267 mod 63,
b) 172167 mod 19
c) 40167 mod 41
d) (17267 13267 )mod 55
Wskazówka: Sprawdź, czy konieczne jest stosowanie tw. Eulera. Jeśli tak, wyznacz podzielniki pierwsze
modułu oraz funkcję Eulera i stosownie zredukuj potęgę. (ew. zastosuj małe tw. Fermata)
5. Nie wykonując dzielenia wyznacz resztę z dzielenia liczby 1011 0011 0111 11012 przez
a) 11112
b) 100012
c) 111112
d) 100000012.
Wskazówka: Zastosuj właściwości kongruencji i zaleŜność (m ± 1) mod m = ± 1 .
6. Stosując reguły arytmetyki resztowej oblicz najmniejsze reszty całkowite (dodatnie lub ujemne) sumy,
róŜnicy i iloczynu liczb 46528 i 0ABCD16 względem modułów: 25710, 78 , 6510, 3F16, 1116, 0FF16
Wskazówka: Zastosuj właściwości kongruencji i zaleŜność (m ± 1) mod m = ± 1 .
7. Podaj reprezentację resztową liczby 2345610 w bazie: a) (29, 30, 31), b) (99, 100, 101), a) (63, 64, 65).
Wskazówka: Wyznacz reprezentację liczby w systemie o podstawie a) 30, b) 100, c) 64 oraz zastosuj
właściwości kongruencji i zaleŜność (m ± 1) mod m = ± 1 .
8* Znajdź odwrotności multyplikatywne iloczynów par modułów bazy systemu resztowego (a–1, a, a+1)
względem trzeciego z nich, zakładając, Ŝe a jest liczbą parzystą.
Wskazówka: Wykorzystaj zaleŜność (m ± 1) mod m = ± 1
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
15
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
9. Znajdź jedynki resztowe w zbiorze kongruencji naturalnych (x∈[0, M)) w systemie RNS:
a) {29, 30, 31}
b) {99, 100, 101}
c) {63, 64, 65}
d)* {11, 13, 15, 16}
Znajdź liczbę, której reprezentacją resztową jest ((a),b),c)): (1, 2, 3), (d): (1, 2, 2, 1).
**RozwiąŜ zadanie w zbiorze kongruencji całkowitych (x∈ –(M–1) /2, M–1 /2))
Wskazówka: Wykorzystując zaleŜność (m ± 1) mod m = ± 1 (oprócz d)) znajdź odwrotności niepełnych
iloczynów modułów bazy i zastosuj chińskie twierdzenie o resztach. ZauwaŜ, Ŝe zawsze jest
(1, 1, 1, … , 1) = 1, (–1, – 1, – 1, … , – 1) = –1 = M–1, a takŜe (m1–1, m2– 1, m3– 1, … , mk– 1)=M–1= –1.
** – Do uzyskanych wyników dodaj ±M…
A. Zapisz w 32-bitowym formacie zmiennoprzecinkowym standardu IEEE 754 liczby o wartościach:
a) 674,5318
b) 0,128 ⋅ 8-51
c) – 0ABC,DE16
d) 10,1010101010U2 ⋅ 4 -61
Wskazówka: Zapisz liczbę w systemie znak-moduł i tak przeskaluj, aby moduł był standardowy.
B. Zapisz w 32-bitowym formacie zmiennoprzecinkowym IEEE 754 pierwiastki kwadratowe z liczb:
a) 1010 0010, 0111 11002, b) 123,4568, c) 10100 0100, 1111 1002
Wskazówka: Pamiętaj o skalowaniu i bicie ukrytym.
C. Oblicz i zapisz w 32-bitowym formacie zmiennoprzecinkowym standardu IEEE 754 z dokładnością do
5 cyfr znaczących pierwiastki kwadratowe z liczb danych w tym formacie:
a) 0 0100 0100 111 1100 1010 0010 0111 1100, b) 0 1010 0101 1111 1010 0100 1111 1111 1002
c) 0 0100 0101 111 1100 1010 0010 0111 1100, d) 0 1010 0100 1111 1010 0100 1111 1111 1002
Wskazówka: Zwróć uwagę na nieparzyste wykładniki. Pamiętaj o skalowaniu i bicie ukrytym.
D* WykaŜ, Ŝe w dodawaniu (mnoŜeniu) zmiennoprzecinkowym znormalizowanych operandów, bit X dla
znormalizowanej sumy (iloczynu) moŜe być wyznaczony przed wykonaniem działania.
Wskazówka: Rozpatrz przypadki składników o identycznych i róŜnych wykładnikach. W mnoŜeniu
zauwaŜ, Ŝe iloczyn ma tyle samo pozycji znaczących, co kaŜdy z czynników, a co najmniej jeden z
czynników ma określony zakres (jest znormalizowany).
E. Wyznacz z dokładnością do 4 bitów znacznika zaokrąglenia argumentów 1,101111011 i 1,101111001
uzupełnione bitami G, R, X. Wykonaj ich mnoŜenie i porównaj z wynikiem pełnego mnoŜenia.
Wskazówka: Bit G to bit piąty, bit R wynika z przybliŜenia do najbliŜszej (tu obojętne czy parzystej czy
nieparzystej, bit S wskazuje, czy na odcinanych pozycjach była choć jedna „1”.
F* Oszacuj maksymalny błąd przybliŜenia róŜnicy podczas odejmowania znormalizowanych operandów
obliczonych z taką samą dokładnością bezwzględną znacznika (mantysy).
Wskazówka: Zbadaj najgorszy przypadek. Wykorzystaj analizę z zad. D
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
16
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 5
1. Stosując reguły działań w algebrze Boole’a uprość poniŜsze wyraŜenia
a) x+(x ⊕ y)
b) xyz+(x ⊕ y)+(z ⊕ y)
g) [z ⋅ f(x)+(z ⊕ f(x))] f(x)
c) x+~xy+xyz
d) zy+(x ⊕ y) e) zx+z(x ⊕ 1) f) x+xy+(x ⊕ yz)
h) (g(x)+z ⊕ f(x))+z f(x)(1 ⊕ g(x)
Wskazówka: Zamień wyraŜenia zawierające ⊕ na sumy iloczynów i zminimalizuj. Zapisz funkcje jako
sumy iloczynów lub iloczyny sum. Upraszczaj wyraŜenia bezpośrednio na podstawie podobieństw
ciągów wartości zmiennych odpowiadających tej samej wartości funkcji, np. f(x1, … , xi–
1, φ, xi+1, … , xn) =
f(x1, … , xi–1, 0, xi+1, … , xn) + f(x1, … , xi–1, 1, xi+1, … , xn) .
2* PokaŜ, Ŝe kaŜdą funkcję logiczną moŜna wyrazić za pomocą funkcji NOR albo funkcji NAND.
Wskazówka: Przedstaw funkcje sumy, iloczynu i negacji za pomocą funkcji NOR lub NAND
3. Wyznacz funkcje dualne i komplementarne do funkcji f 1 (x) = x 2 x1 + x3 x 2 i f 2 (x) = x3 x1 + x3 ( x 2 + x1 ) ,
oraz (f1+f2)(x) i (f1 f2)(x). Narysuj stosowne sieci logiczne. Na podstawie twierdzenia Shannona rozwiń
funkcje (f1+f2)(x), (f1 f2)(x) i (f1⊕f2)(x) względem zmiennej x3.
Wskazówka: Zastosuj prawa de’Morgana.
4* PokaŜ, Ŝe charakterystyki AT sieci realizujących funkcję dualną i komplementarną są jednakowe.
Wskazówka: Zauwaź podobieństwo rozwinięcia funkcji w postaci sumy iloczynów i iloczynu sum.
5* Narysuj schemat logiczny sumatora 1-bitowego, którego wyjścia sumy i przeniesienia są wytwarzane
z uŜyciem multiplekserów sterowanych przeniesieniem wejściowym na podstawie funkcji sumy
i przeniesienia zerowego i jedynkowego s0 , s1 , c0 , c1 . Wyznacz charakterystyki AT tego układu.
Odpowiedź: Wyznacz najdłuŜszą ścieŜkę, policz bramki przeliczeniowe na tej ścieŜce (T) i wszystkie (A).
6. Oblicz charakterystyki AT sumatorów uniwersalnych RCA dla kodów k-bitowych:
a) uzupełnieniowego pełnego (U2)
b) uzupełnieniowego niepełnego (U1)
d) spolaryzowanego ujemnie „+2k–1”
e) spolaryzowanego dodatnio „+2k–1–1”
c) znak-moduł,
Wskazówka: Wykorzystaj charakterystyki AT sumatora 1-bitowego.
7. Zaproponuj sposób kodowania cyfr i zaprojektuj sumator jedno- i cztero-pozycyjny dla systemu
a) U10 z kodowaniem cyfr w kodzie „+3” i kodzie BCD
b) dwójkowego negabazowego (β = –2),
c)* naturalnego trójkowego (β = 3) i dwójkowego z cyfrą znakowaną SD, (D={–1,0,+1})
Wskazówka: a), b) wykorzystaj związki z sumatorem dwójkowym; c) wyznacz tabele prawdy.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
17
Rok I
ARYTMETYKA KOMPUTERÓW
rozwiązania
8. Oblicz charakterystyki AT sumatora 24-bitowego z przeniesieniami przeskakującymi (carry-skip) jeśli
ma on strukturę a) 3-4-4-3-4-4-2, b) 3-3-4-4-4-3-3, c) 4-4-4-4-4-4, d) 6-6-6-6, e) optymalną.
Wskazówka: Area: Oblicz liczbę ogniw sumatora i liczbę ogniw łańcucha przeskoku przeniesienia,
Time:Wyznacz ścieŜki krytyczne i oblicz opóźnienie.
9. Zaprojektuj 4- i 8-bitowy sumator sum warunkowych i wyznacz ich charakterystyki AT.
Wskazówka: ZauwaŜ, Ŝe sumatory wejściowe są uproszczone, oblicz liczbę multiplekserów.
A* Zaprojektuj 4- i 8-bitowy sumator prefiksowy PPA w strukturze Ladnera-Fischera i Hana-Carsona.
Wyznacz funkcje wytwarzania (G*) i przekazywania (P*) przeniesień na kolejnych poziomach bloku
generowania przeniesień. **Wyznacz charakterystyki AT sumatora k-bitowego.
Wskazówka: Oceń charakterystyki AT stopnia wejściowego, poziomu sieci PPA i stopnia wyjściowego.
**Znajdź zaleŜność na parametry AT dla n=2k a następnie uogólnij ten wynik.
B. Zaprojektuj 8-bitowe układy inkrementacji i dekrementacji i wyznacz ich charakterystyki AT.
Wskazówka: Wykorzystaj charakterystyki 1-bitowego ogniwa inkrementera/dekrementera, wyznacz
najdłuŜsza scieŜkę propagacji przeniesienia.
C. Zaprojektuj uniwersalny układ realizujący skalowanie liczby 8-bitowej w kodzie U2 przez 2, ½ oraz ¼.
Wyznacz charakterystyki AT tego układu. Wskazówka: Zrealizuj układ jako przesuwnik kaskadowy
(barrel shifter) z uŜyciem multiplekserów 2-wejściowych. Pamiętaj o pozycjach rozszerzenia.
Wskazówka: ZauwaŜ, Ŝe układ moŜna zrealizować jako przesuwnik w prawo (o 0, 1, 2 lub 3 pozycje)
z przekierowaniem (przenumerowaniem) wyjść (co odpowiada obligatoryjnemu przesunieciu w lewo).
D* Zaprojektuj uniwersalny sumator 4-bitowy, którego wejścia są zakodowane w dwójkowym kodzie
naturalnym, a wyjścia w kodzie znak-moduł .
Wskazówka: RozwaŜ, róŜne warianty rozwiązania – zdublowany sumator, sumator U2 z korekcją, itp
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
18
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 6
1. W celu dodania n operandów k-bitowych uŜyto sumatora CSA (carry-save). Ile bitów zawiera suma?
Jakie jest opóźnienie (T) dodawania, jeśli końcowy wynik wytwarza sumator:
a) kaskadowy RCA,
b) prefiksowy PPA
c) sum warunkowych COSA.
Obliczenia wykonaj dla n = 7, 15, 31 oraz k = 8, 16, 32.
Wskazówka: Liczbę bitów sumy wyznacza jej zakres [0, n (2k –1)]. Liczba poziomów s ≤ (lg n/2) / lg 3/2.
Opóźnienie jednego poziomu T=4 (do obu wyjść)
2. Ile poziomów musi zawierać sumator CSA uŜyty do redukcji iloczynów częściowych tworzonych
w mnoŜeniu liczb 32-bitowych w kodzie naturalnym (NB)? Ile sumatorów elementarnych (3,2)
zawiera najbardziej skomplikowana gałąź CSA odpowiadająca bitom o tej samej wadze.
Wskazówka: Patrz poprzednie zadanie.
3. Zaprojektuj sumator CSA dodający odpowiednio 3, 4 i 8 operandów 4-bitowych w kodzie U2.
Wskazówka: Nie zapomnij o bitach rozszerzenia. Sprawdź skutki, jeśli bity te zostaną pominięte.
4. Wyznacz, uwzględniając czas końcowego dodawania, najkrótszy czas dodawania 32 operandów 64bitowych w sumatorze CSA jeśli dysponujesz:
c) reduktorami (3,2) generującymi przeniesienia 1-bitowe, wnoszące opóźnienia T = 4 kaŜdy
d) *reduktorami (4,2) generującymi przeniesienia 2-bitowe, wnoszące opóźnienia T = 6 kaŜdy
Wskazówka: *Oblicz liczbę poziomów i liczbę bitów końcowego dodawania.
5. Oblicz charakterystyki AT matrycy mnoŜącej dwa operandy: a) 4-bitowe, b) 8-bitowe c)* n-bitowe
Wskazówka: Policz liczbę elementarnych sumatorów oraz liczbę poziomów akumulacji.
6* Zaprojektuj matrycę mnoŜącą operandy 4-bitowe w kodzie U2 z wykorzystaniem przekodowania
mnoŜnika w bazie 4 (wg reguły Bootha-McSorley’a). Porównaj z innymi układami matrycowymi.
Wskazówka: Zaprojektuj element podstawowy matrycy.
7. Oblicz charakterystyki AT sumatora CSA uŜytego do redukcji iloczynów częściowych w mnoŜeniu
operandów 4-, 8- bitowych danych: a) w kodzie NB, b) w kodzie U2 z eliminacją bitów rozszerzenia.
*Podaj oszacowanie charakterystyk AT dla mnoŜenia operandów n-bitowych.
Wskazówka: Ad b) zauwaŜ, Ŝe kaŜdy operand ma inną wagę.
8. Oblicz charakterystyki AT matryc dzielących operandy 8-bitowe w kodzie NB i U2
Wskazówka: Wyznacz najdłuŜszą ścieŜkę propagacji zmiany sygnału wejściowego.
9* Zaprojektuj układ mnoŜenia akumulacyjnego (pomnóŜ i dodaj) operandów 8-bitowych w kodzie U2
wykorzystujący matrycę mnoŜącą. Porównaj z innymi układami matrycowymi.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
19
Rok I
ARYTMETYKA KOMPUTERÓW
rozwiązania
A* Opracuj i uzasadnij algorytmy konwersji dwójkowo–dziesiętnej liczb całkowitych dodatnich, bez
wykonywania dzielenia, jeśli cyfry dziesiętne są kodowane: a) w kodzie BCD, b) w kodzie BCD+3.
Wskazówka: Konwersja BCD na dwójkowy: Zbadaj skutki przesunięcia o jeden bit w prawo liczby k ≥ 2pozycyjnej w kodzie BCD. Konwersja dwójkowy na BCD/BCD+3: Wykorzystaj dodawanie.
B. Zaprojektuj sumatory mod (24–1) i (24+1) dwóch liczb całkowitych 4-bitowych w kodzie U2.
Wskazówka: RozwaŜ kongruencje w zbiorze liczb całkowitych. Przeanalizuj struktury PPA.
C* Zaprojektuj generator reprezentacji resztowej liczby całkowitej 8- i 16-bitowej w kodzie NB
a) mod 11112 b) mod 100012
c) mod 1112
d) mod 10012
Uwaga: *Jest wiele argumentów wejściowych, które mają (b) i d)) róŜne znaki. Konieczne moŜe być
uŜycie bitów rozszerzenia.
D* Zaprojektuj generator reprezentacji resztowej liczby całkowitej 8- i 16-bitowej w kodzie U2
a) mod 11112 b) mod 100012
c) mod 1112
d) mod 10012
Wskazówka: RozwaŜ kongruencje w zbiorze liczb całkowitych. ZauwaŜ, Ŝe najwyŜsz grupa bitów ma
znak − x k −1 2 k −1 + ∑i =0 xi 2 i = 2 s (− x k −1 2 k −1− s + ∑i = s xi 2 i − s ) + ∑i =0 xi 2 i
k −2
k −2
s −1
E*Zaprojektuj sumator mod 23 liczb 6-bitowych w kodzie U2
Wskazówka: Wykorzystaj okresowość reszt mod 23.
F*Zaprojektuj generatory reszt mod (23–1) dwóch liczb całkowitych 32-bitowych w kodzie U2.
Wskazówka: Wykorzystaj sumatory CSA w strukturze MOMA (z bieŜącą redukcją przeniesienia
okręŜnego).
G**Zaprojektuj generatory reszt mod (23+1) dwóch liczb całkowitych 32-bitowych w kodzie U2.
Wskazówka: Wykorzystaj sumatory CSA w strukturze MOMA. ZauwaŜ, Ŝe operandy wejściowe są
zredukowane (nie ma operandów o wartości 23) i mają przeciwne znaki.
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
20
Rok I
rozwiązania
ARYTMETYKA KOMPUTERÓW
Lista nr 7
1. Oblicz metodą Newtona odwrotność dzielnika 1,1011012 z dokładnością do 16 bitów.
2. Oblicz metodą Newtona odwrotność pierwiastka kwadratowego z 102 . z dokładnością do 16 bitów.
Wskazówka: Znajdź funkcję monotoniczną i wymyśl sposób ustalania pierwszego przybliŜenia
3. Oblicz metodą uzbieŜniania iloraz 3,14168 :2,71638.
Wskazówka: Wybierz pierwsze przybliŜenie ...
4. Opracuj algorytm obliczania pierwiastka kwadratowego z liczby całkowitej na podstawie toŜsamości:
„suma n kolejnych nieparzystych liczb naturalnych jest równa kwadratowi z ich liczby” (np. 1+3+5=32
1+3+5+7=42, 1+3+5+7+9=52 itd.).
*Oceń czas obliczeń i porównaj z algorytmem klasycznym („kolejnych reszt”) w wersji podstawowej
i nierestytucyjnej. Zaproponuj ulepszenie algorytmu dla duŜych argumentów.
*Określ minimalny czas obliczeń, jeśli liczba jest zakodowana odpowiednio na 8, 16, 32 bitach.
Wskazówka: ZauwaŜ, Ŝe ∆ k = X − ∑i =0 (2i + 1) = [ X − ∑i =0 (2i + 1)] − (2k + 1) = ∆ k −1 − (2k + 1) , więc
i=k
i = k −1
oszacowaniem pierwiastka jest takie k, przy którym odstęp sumy od X zmienia znak.
*Korzystając z zaleŜności (n+p)2 – n2 = (2n+1)(2n+3)…[2(n+p)–1]
5* Oceń czas obliczania pierwiastka trzeciego stopnia na podstawie algorytmu opartego na zaleŜności:
n − n = ∑ (3 ⋅ i − 3 ⋅ i ) = 3∑ (i ⋅ (i − 1)) = 3∑∑ 2i = 6∑∑ i
n
3
n
n
j −1
2
i =1
i =1
j =1 i =0
n −1
j
j =1 i =1
Wskazówka: ZauwaŜ związek sumy zewnętrznej z wewnętrzną.
6* Oszacuj liczbę kroków algorytmu CORDIC potrzebnych do obliczenia wartości funkcji exp, ln, sin,
cos, arctg dla argumentu z przedziału [–1,1] z dokładnością do 32 bitów części ułamkowej.
Wskazówka: Zastosuj odpowiednio wzory.
7. Korzystając z przybliŜenia (1–x)–1 = 1+x+x2+... oraz (1+x)–1 = 1–x+x2–x3+... oblicz odwrotności dla
poniŜszych reprezentacji zmiennoprzecinkowych. Określ wartości bitów GRX. Oceń dokładność
przybliŜenia i podaj warunki stosowalności algorytmu.
Wskazówka: Sprawdź przydatność przybliŜeń dla róŜnych rozwinięć części ułamkowej (mnoŜników
o postaci 2−f oraz 1+f, gdzie f jest małym ułamkiem.
8.*Korzystając z rozwinięcia w szereg Taylora (McLaurina) podaj algorytm obliczania przybliŜenia
odwrotności liczby w formacie zmiennprzecinkowym o postaci 1±ax, gdzie a=2q. Określ warunki
stosowalności algorytmu i sposób wyznaczania wartości bitów GRX. Oceń dokładność przybliŜenia.
Wskazówka: Wykorzystaj rozwinięcie w szereg Taylora (McLaurina).
©Janusz Biernat, ARYT-ZAD+ROZW’02
5 października 2005
21