Realizace základních matematických operací v počítači



Podobné dokumenty
P2 Číselné soustavy, jejich převody a operace v čís. soustavách

Komplexní čísla. Pojem komplexní číslo zavedeme při řešení rovnice: x = 0

Půjdu do kina Bude pršet Zajímavý film. Jedině poslední řádek tabulky vyhovuje splnění podmínky úvodního tvrzení.

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

Struktura a architektura počítačů

2.8.5 Lineární nerovnice s parametrem

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

Hyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná

LOGICKÉ OBVODY J I Ř Í K A L O U S E K

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:

Automaty a gramatiky(bi-aag)

Návrh základních kombinačních obvodů: dekodér, enkodér, multiplexor, demultiplexor

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17

ARITMETICKOLOGICKÁ JEDNOTKA

13. Exponenciální a logaritmická funkce

( 1). (, ) Sčítání. úplná binární sčítačka. Doba vytvoření součtu. s i. a i A B 3. c i+ a b. S i. c i. a b A B 2. a b c S 1. b i c i.

Lineární nerovnice a jejich soustavy

2.1 - ( ) ( ) (020201) [ ] [ ]

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

Jsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.

ANALYTICKÁ GEOMETRIE V PROSTORU

Konstrukce na základě výpočtu I

Konstrukce na základě výpočtu II

x + F F x F (x, f(x)).

Souhrn základních výpočetních postupů v Excelu probíraných v AVT listopad r r. . b = A

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

Teorie jazyků a automatů I

Vícebytová celočíselná aritmetika

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b b2 2.

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra

{ } ( ) ( ) Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

NEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

Větu o spojitosti a jejich užití

Konstrukce na základě výpočtu I

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

UC485S. PŘEVODNÍK LINKY RS232 na RS485 nebo RS422 S GALVANICKÝM ODDĚLENÍM. Převodník UC485S RS232 RS485 RS422 K1. přepínače +8-12V GND GND TXD RXD DIR

Podobnosti trojúhelníků, goniometrické funkce

M - Příprava na 3. zápočtový test pro třídu 2D

Technická dokumentace Ing. Lukáš Procházka

Při výpočtu obsahu takto omezených rovinných oblastí mohou nastat následující základní případy : , osou x a přímkami. spojitá na intervalu

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

H - Řízení technologického procesu logickými obvody

3. APLIKACE URČITÉHO INTEGRÁLU

Univerzita Tomáše Bati ve Zlíně

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

DERIVACE A INTEGRÁLY VE FYZICE

63. ročník matematické olympiády III. kolo kategorie A. Ostrava, března 2014

Petriho sítě PES 2007/2008. Doc. Ing. Tomáš Vojnar, Ph.D.

Druhé kvantování. Slaterův determinant = χ χ

Obsah rovinného obrazce

Seznámíte se s další aplikací určitého integrálu výpočtem objemu rotačního tělesa.

2.2.9 Grafické řešení rovnic a nerovnic

Integrály definované za těchto předpokladů nazýváme vlastní integrály.

Riemannův určitý integrál.

( ) ( ) ( ) Exponenciální rovnice Řeš v R rovnici: = ŘEŠENÍ: Postup z předešlého výpočtu doplníme využitím dalšího vztahu: ( ) t s t

Matematika 1A. PetrSalačaJiříHozman Fakulta přírodovědně-humanitní a pedagogická Technická univerzita v Liberci

Teoretický souhrn k 2. až 4. cvičení

4.4.3 Kosinová věta. Předpoklady:

Prostorové nároky Zatížení Velikost zatížení Směr zatížení Nesouosost Přesnost Otáčky Tichý chod...

Výfučtení: Goniometrické funkce

Řešte daný nosník: a = 2m, b = 2m, c = 1m, F 1 = 10kN, F 2 = 20kN

VY_32_INOVACE_CTE-2.MA-15_Sčítačky (poloviční; úplná) Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl

return n; 3/29 Ing. Miroslav Balík, Ph.D. - BI-PA1-05 if (n<1) { printf("%d neni prirozene cislo\n", n); exit(0); }

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

Příklad 22 : Kapacita a rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem

URČITÝ INTEGRÁL FUNKCE

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

ALGEBRA, ROVNICE A NEROVNICE

5.2. Určitý integrál Definice a vlastnosti

R n výběr reprezentantů. Řekneme, že funkce f je Riemannovsky integrovatelná na

5.1.5 Základní vztahy mezi body přímkami a rovinami

( ) ( ) Sinová věta II. β je úhel z intervalu ( 0;π ). Jak je vidět z jednotkové kružnice, úhly, pro které platí. Předpoklady:

4. Determinanty. Výpočet: a11. a22. a21. a12. = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 a 13 a 22 a 31. a 11 a 23 a 32 a 12 a 21 a 33

Způsoby realizace této funkce:

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

m n. Matice typu m n má

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Tangens a kotangens

Logické obvody. Logický obvod. Rozdělení logických obvodů - Kombinační logické obvody. - Sekvenční logické obvody

Nerovnosti a nerovnice

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

5.1.5 Základní vztahy mezi body, přímkami a rovinami

LDF MENDELU. Simona Fišnarová (MENDELU) Určitý integrál ZVMT lesnictví 1 / 26

Digitální učební materiál

je jedna z orientací určena jeho parametrizací. Je to ta, pro kterou je počátečním bodem bod ϕ(a). Im k.b.(c ) ( C ) (C ) Obr Obr. 3.5.

Úlohy školní klauzurní části I. kola kategorie C

4.4.1 Sinová věta. Předpoklady: Trigonometrie: řešení úloh o trojúhelnících.

8. Elementární funkce

METODICKÉ LISTY Z MATEMATIKY pro gymnázia a základní vzdělávání

9 Axonometrie ÚM FSI VUT v Brně Studijní text. 9 Axonometrie

Zkoušku snadno provedeme tak, že do soustavy (1), která je ekvivalentní dané soustavě rovnic, dosadíme příslušné hodnoty s a p.

Obr. 1: Optická lavice s příslušenstvím při měření přímou metodou. 2. Určení ohniskové vzdálenosti spojky Besselovou metodou

1. LINEÁRNÍ ALGEBRA 1.1. Matice

Je regulární? Pokud ne, na regulární ji upravte. V původní a nové gramatice odvod te řetěz 1111.

Zvyšování kvality výuky technických oborů

SYLABUS PŘEDNÁŠKY 7 Z GEODÉZIE 1

Úvod do Teoretické Informatiky ( UTI)

Transkript:

Relzce zákldních mtemtckých opercí v počítč Nedílnou součástí výuky HW SW vyvení počítčů n nší škole je znlost práce rtmetcké jednotky. Jk známo, počítče relzují rtmetcké operce v nární soustvě. Ay HW relzce yl co nejjednodušší, prktcky veškeré výpočty se převádějí n provádění součtu. Rozdíl dvou čísel se převádí n přčítání doplňku (. resp.. doplněk), násoení n přčítání, dělení n odčítání příslušného doplňku, Mocnnu odmocnnu lze převést n sčítání resp. odčítání. V první část toho textu se zýváme HW relzcí rtmetckých opercí, druhá řeší tuto prolemtku progrmově v jzyku Python. Aplkce logckých komnčních ovodů. Sčítání c s c + Tulk. Zákldní logcký komnční ovod, který relzuje sčítání, se nzývá úplná nární sčítčk. Jeho prvdvostní tulk je dán t... Z Krnughových mp pro funkce S c + pk odvodíme vzthy (.) (.). Logcké funkce pro S c + lze relzovt ovodem z or... Sčítčku pro N-tová čísl můžeme vytvořt kskádním propojením N stupňů - úplných nárních sčítček. N or.. je příkld pro N =, který se vyráí v ntegrovné podoě ve stndrdní řdě jko ovod. (. +. ) + c.(. ) c.( + ) =. + c.(. ) S = c. +. (. ) c. =. + + + (. ) Nevýhod kskádního řzení spočívá v postupném vytváření pltných přenosových tů c + proto do potřená k vytvoření součtu lneárně vzrůstá se vzrůstjícím počtem tů sčítných čísel podle vzthu ( ). (, ) t = N t + Mx t t (. ) o c c s mx mx mx mx Proto se zčly vyráět sčítčky se součsným knálem přenosu (zrychleným knálem přenosu), který vytváří všechny potřené přenosy njednou. Ze vzthu (.) sndno odvodíme tyto vzthy pro přenosy čtyřtové sčítčky. Střední průmyslová škol elektrotechncká, V Úžlně Prh

+ c. ( ) c =. + (. ) ( ) ( ) ( ) c =. +.. + + c. +. + (. ) ( ) ( ) ( ) c =. +.. + +.. +. + + (. ) ( ) ( ) ( ) + c. +. +. + ( ) ( ) ( ) ( ) c =. +.. + +.. +. +. + (. ) ( ) ( ) ( ) ( ) ( ) ( ) +.. +. + + c. +. +. +. + c UA ALS UA UB ALS S A B A B c c c + S c + S c S S c c ALS UB ALS UC U?A ALS c + A B c A B c c c + S c + S S S Or.. ALS Or.. c c c Ovod popsný rovncem (.) ž (.) c c c c Zrychlený knál přenosu LSA s s s s Výrzy c, c, c c popsují zrychlený knál přenosu, který je vhodné relzovt dvoustupňovým ovodem jko je tomu u sčítček LSA, LS neo rtmetckologcké jednotky (ALU). N or.. je symolcky znázorněn relzce -tové sčítčky se zrychleným knálem přenosu. Jk vyplývá z rovnc (.) ž (.) Or.. Střední průmyslová škol elektrotechncká, V Úžlně Prh

složtost dvoustupňové relzce zrychleného knálu přenosu s nrůstjícím počtem sčítných tů rychle roste. Jko mezní hodnot ývá oznčován hodnot n. K relzc většnou použjeme kskádní zpojení -tových sčítček se zrychleným knálem přenosu. V tomto zpojení je přenos mez jednotlvým sčítčkm relzován postupně, uvntř sčítček je zrychlený. Pro smíšený způso vytváření přenosu je oznčováno jko hyrdní sčítčk. Přenosy mez čtyřtovým sčítčkm můžeme relzovt dvou více stupňovým knály rychlého přenosu. Z rovnc (.) ž (.) zjstíme, že pouze poslední člen v kždé rovnc je závslý n hodnotě počátečního přenosu. Oznčíme-l g k = k. k p k = k + k můžeme rovnce (.) ž (.) přepst: c = g + c. p (. ) c = g + g. p + c. p. p (. ) c = g + g. p + g. p. p + c. p. p. p (. ) c = g + g. p + g. p. p + g. p. p. p + c. p. p. p. p = (. ) = G + c. P kde vyrzy G P jsou funkcem pouze sčítných tů k k k =,,. Odoně můžeme pro přenos c psát c = g + g. p + g. p. p + g. p. p. p + g. p. p. p. p (. ) + g. p. p. p. p. p + g. p. p. p. p. p. p + + g. p. p. p. p. p. p. p + c. p. p. p. p. p. p. p. p = ( ) = G + p. p. p. p. G + c. P = G + G. P + c. P. P kde G = g +g.p + g.p.p + g.p.p.p P = p.p.p.p. Anlogcky můžeme odvodt vzthy pro c c, z kterých zjstíme, že jsou stejné jko rovnce (.) ž (.) s tím, že nhrdíme g k hodnotou G k p k hodnotou P k. K relzc druhého stupně zrychleného knálu přenosu potřeujeme ovod relzující rovnce (.) ž (.) n-tové sčítčky, které kromě ovyklých vstupů výstupů,, S, c c, udou vyveny výstupy funkcí G P. Tkovým ovody jsou LS, LS, F, AS, AS AS. Zrychlené knály přenosu se vyráí jko ovody S AS, (relzují rovnce (.) ž (.)) místo rovnce (.) relzují funkce G P pro dné přpojení třetího stupně zrychleného knálu přerušení, AS, který relzuje přenosy c n+, c n+, c n+ c n+ pro -tovou sčítčku. N or.. je zorzen -tová sčítčk s dvoustupňovým knálem Střední průmyslová škol elektrotechncká, V Úžlně Prh

zrychleného přenosu relzovná pomocí čtyřtových sčítček se zrychleným knálem přenosu ACT zrychleným knálem přenosu ACT. c R k VCC U A A A A B B B B CN S S S S M ACT U A A A A B B B B CN S S S S M ACT U A A A A B B B B CN S S S S M ACT U A A A A B B B B CN S S S S M ACT F F F F A=B CN+ P G F F F F A=B CN+ P G F F F F A=B CN+ P G F F F F A=B CN+ P G s s s s P G CN' s s s s P G CN+X s s s s P G CN+Y CN+Z s s s s P G P G P G P G P G U CNA CNB P G P G P G P G S S ACT A B A B A B A B c Or.. CN' CN+X CN+Y CN+Z P G ACT c ns ACT ACT c c ns c n ns n ACT ns n c n CN' CN+X CN+Y CN+Z S c n+z S c n+y S c n+x S P G P G P ACT G P G ns c Or.. ns P G Střední průmyslová škol elektrotechncká, V Úžlně Prh

. Odčítání Anlogcky jko jsme postupovl př relzc sčítání, mohl ychom odvodt tulku pro úplnou nární odčítčku jko ovodu relzujícího operc odčítání v jednom nárním řádu popsnou vzthem +.. c. = r. c +. (. ) Tto cest y vedl k vytvoření dlších ntegrovných ovodů - odčítček. Jk ylo ukázáno, není nutné tkový ovod vytvářet, protože odčítání můžeme relzovt jko součet dvojkového čísl s jednotkovým neo dvojkovým doplňkem odčítného čísl. Pro relzc jednotkového doplňku potřeujeme nvertovt všechny ty odčítného čísl, k relzc dvojkového doplňku musíme ještě k nvertovnému číslu přčíst jednčku. Vytvoření dvojkového doplňku je možné provést komnčním ovodem relzujícím funkconální trnsformc čísl n jeho dvojkový doplněk. Dleko čstěj se vytváří z jednotkového doplňku, ke kterému je přčten jednčk pomocí sčítčky. Budeme-l dvojkový doplněk využívt k operc sčítání, můžeme přčtení jednčky k jednotkovému doplňku relzovt př vlstním sčítání tím, že zvedeme nenulový (jednotkový) počáteční přenos c =. Příkld Nvrhněte sčítčku odčítčku prcující s -tovým čísly X Y (.t předstvuje znménko) ve vyjádření dvojkovým doplňkem s pevnou desetnnou čárkou. Sčítání neo odčítání je řízeno sgnálem S/O, který je roven pro sčítání pro odčítání. V reprezentc pomocí dvojkového doplňku zprcováváme znménkový t stejně jko ty význmové. Tím se zjednodušuje ovodové řešení, př kterém není tře porovnávt oě čísl pro vytvoření znménk. Je všk tře generovt sgnál přeplnění pro přípdy, kdy výsledek přeshuje rozsh hodnot (-,+). Mohou nstt tyto přípdy: ) Sčítání dvou kldných čísel Sčítčk má n vstupu operndy ve tvru z v, y z x, x, kde z v z x předstvují znménko (osmý t) x y předstvují sedm význmových tů čísel X Y. Výsledek součtu,x,y může ýt n ), x +, y =, s, kde S=X+Y x + y ), x +, y =, s, kde s je n- nžších řádů součtu x+y n x + y Střední průmyslová škol elektrotechncká, V Úžlně Prh

V druhém přípdě dochází k přeplnění (přetečení), protože výsledkem součtu dvou kldných čísel je číslo záporné. To je chy, kterou je tře ndkovt. ) Sčítání kldného záporného čísl Sčítčk má n vstupech operndy ve tvru,x,y relzovnou operc můžeme zpst (, ) +, x +, y =, x+ y (. ) ) pro x > y tj. x =y + r (r - rozdíl) pltí n, x +, y =, y +, r+, y + =, r + =, (. ) ( ) r Výsledkem je kldné číslo rovné rozdílu. ) pro x < y tj. y = x+r pltí, x +, y =, x+, x +, r + =, x+, x +, r + + (. ) ( ) ( ) ( ) = (, ) + = r Výsledek odpovídá zápornému vyjádření Y-X. Nedošlo k přeplnění. c) Sčítání dvou záporných čísel Sčítčk zprcovává operndy ve tvru,x,y, pro které můžeme psát (, x) + + (, y) + = (, x +, ) +, x +, y= y (. ) Výsledek je záporná reprezentce součtu dvou kldných čísel. Pro hodnotu,x +,y přchází v úvhu tř možné přípdy: ) Pro,x +,y =,s kde s n- -, pltí, x +, y=, s + (. ) Y. ( ) Výsledek je záporná reprezentce součtu solutních hodnot X ) Pro,x +,y =,... pltí, x +, y=,... + =,... + =,... (. ) ( ) Lmtní přípd - součet X Y se rovná hodnotě n-. ) Pro,x +,y =,s, kde s je nžších n- řádů součtu X + Y, pltí (, ) +, x +, y= s (. ) Pokud ( ),s,..., pk číslo,s ptří k záporným číslům jeho doplněk je číslo kldné. Př přeplnění (podtečení) je výsledek součtu dvou záporných čísel číslo kldné, což je chy. Střední průmyslová škol elektrotechncká, V Úžlně Prh

Z rozoru všech možností vyplývá, že k přetečení neo podtečení dochází tehdy, když př součtu dvou čísel se stejným znménkem získáme výsledek se znménkem opčným. Pro funkc ndukující chyu operce můžeme psát Ch z. z. z + z. z. z = (. ) x y s x kde z x, z v z s předstvují znménk X,Y součtu (neo rozdílu). Zývá zvolt vhodný ovod zjšťující vytvoření jednotkového doplňku v závslost n vstupním sgnálu S/O. Návrh tkového ovodu je velm jednoduchý vede n ovod EX-OR (neekvvlence) neo EX-NOR (ekvvlence) podle polrty sgnálu S/O. Dvojkový doplněk vytvoříme ž přímo n sčítčce zvedením nenulového počátečního přenosu pro operc odčítání. N or.. je výsledné zpojení sčítčky odčítčky prcující s čísly ve vyjádření dvojkovým doplňkem. V závslost n sgnálu S/ se n výstupech osm ovodů EX-OR ojeví číslo Y (přípd sčítání) neo jeho jednotkový doplněk (přípd odčítání). y s Y UA Y ALS UB Y K K Y Y UA ALS UB K K X X X XZ K K K KZ U A A A A B B B B C S S S S C S S S SZ S S/O X ALS UC Y K ALS UD Y K ALS UB XZ ALS YZ Y ALS UC ALS UD YZ UC ALS ALS UD K KZ UA ALS UB ALS X X X X K K K K UA ALS ALS U A A A A B B B B C ALS VCC S S S S C UA R ALS SO S S S D LED Or.. ALS Střední průmyslová škol elektrotechncká, V Úžlně Prh

. Násoení Prlelní násočku lze relzovt komnčním ovodem, který modeluje operc násoení A stejně, jko se provádí násoení tužkou n xb ppíře. Artmetcký součn dvou tů je nhrzen p p p p součnem logckým, který má v tomto přípdě c q q q q stejné vlstnost, součty jednotlvých c h h h h mezvýsledků provedeme nárním sčítčkm. n n n n n n n Řešení tkového ovodu s ukážeme n příkldu součnu čtyřtového čísl A třítového čísl Or.. B or... Součny p, q h jsou relzovány logckým členy AND součty ve shodě s or.. jsou relzovány sčítčkm LSA. UA p UB p UC p UD p LS LS LS LS UA g UB q UC q UD q LS LS LS LS UA h UB h UC h UD h LS LS LS LS B A p p p p q q q q U A S A S A S A S B B B B C C LS c h h h h U A S A S A S A S B B B B C C LS n n n n n n Or.. N or.. je zorzen výsledná relzce násočky. Střední průmyslová škol elektrotechncká, V Úžlně Prh

Uvedeným způsoem lze relzovt násočku pro dvojková čísl s neomezeným počtem pltných míst, složtost ovodu všk rychle vzrůstá. Poněkud příznvější stuce nstává př použtí pmětí ROM sčítček. Násoená čísl A B (npř. čtyřtová) vyjdříme tkto A B = = = = ( ) = ( ) ( ). = + ( ) = ( ) ( ). = + (. ) (. ) kde + nyní znčí lgercký součet. Výsledný součn N čísel A B je dán vzthem ( n n n n n n n n ) = ( p p p p ) + ( g g g g ) + ( h h h h ) + ( r r r ) N = (. ) + r (. ) A A A A ROM Y Y Y Y ROM A Y A Y A Y A Y A A A A ROM Y Y Y Y ROM A Y A Y A Y A Y Or.. p p p p g g g g h h h h r r r r U A S A S A S A S B B B B C C LS Osh ROM Adres C U A S A S A S A S B B B B C C LS U A S A S A S A S B B B B C C LS n n n n n kde pppp = ( ) x( ), gggg = ( ) x( ), hhhh ( ) x( ) rr rr ( ) x( ) =, =. Dílčí mezvýsledky ( součny ) p p p p, g g g g, h h h h, r r r r udou uloženy v pmětech ROM, které udou dresovány vstupním. Součet čtyř neo více proměnným ( ) neo ( ) ( ) neo ( ) Střední průmyslová škol elektrotechncká, V Úžlně Prh

mezvýsledků vůč soě vzájemně posunutých provádíme pomocí sčítček. K tomuto řešení je tře poznment, že stejným způsoem můžeme postupovt př progrmování násoení čísel v jzyce symolckých dres jejchž délk přeshuje rozsh operndů násočky ntegrovné v procesorové jednotce.. Porovnání čísel Porovnání čísel je velm čstou opercí v číslcové technce tomu odpovídá množství vyráěných ntegrovných ovodů v různých vrntách. Tyto ovody se používjí v synchronzčních (spouštěcích) ovodech logckých nlyzátorů, kde zjšťují shodu mez předem nstvenou hodnotou vstupním sgnály. Čsto se používjí místo dresových dekodérů v mkroprocesorových systémech, zvláště potřeujeme-l vytvořt jenom jeden ktvční sgnál, td. Porovnávcí ovody můžeme rozdělt n ovody určující rovnost neo nerovnost vstupních proměnných (logcké porovnání) neo dvojkových čísel (rtmetcké porovnání), kdy jeden t porovnávných čísel má funkc znménk. Př relzc ovodu logckého porovnání můžeme vycházet přímo z prvdvostní tulky. Příkld Nvrhněte logcký komnční ovod relzující všechny funkce f ž f pro porovnání dvou dvoutových čísel pomocí logckých členů NAND. f f f f dné funkce odvodíme tyto výrzy f f f f Tulk. Nejprve vytvoříme prvdvostní tulku pro funkce f, f, f, f t... Z Krnughových mp, které s pro funkce f, f, f, f npíšeme zjstíme, že pro relzc logckým členy NAND jsou jednodušší funkce f f. Pro Střední průmyslová škol elektrotechncká, V Úžlně Prh

+.. +.. =. +.. ( ) f =. + (. ) +.. +.. =. +.. ( ) f =. + (. ) N or.. je zorzeno konkrétní zpojení porovnávcího ovodu pro dvě dvoutová čísl A B. Pro funkce f f můžeme psát f = ( A > B) = ( > ) ( = )(. > ) (. ) ( A < B) = ( < ) ( = )( ) f = < (. ). Logcké výrzy v rovncích (.) (.) můžeme nyní nhrdt oolovským výrzy které vyjdřují pttnost zpsných podmínek ( > ) =., ( = ) = k k k k k k k k ( k k ) = k + k (. ) Dosdíme-l výrzy ze vzthu (.) do rovnc (.) (. ), potom s pomocí mnmlzční metody konsensu získáme tyto závěrečné vzthy (. +. ).. =. +. ( ) (. +. ).. =. +. ( ) f =. + (. ) +. f =. + (. ) +. Porovnáním rovnc (.), (.) (.) (.) vdíme, že jsou stejné. V součsné doě jž př relzc porovnávcího ovodu použjeme některý z vyráěných ntegrovných ovodů. Některé ovody jsou vyveny vstupy (P=Q, P<Q, P>Q) pro kskádní řzení ovodů. Kskádní řzení všk ude vykzovt stejné nevýhody, s kterým jsme se jž seznáml př sčítání čísel. Potřeujeme-l porovnání vyhodnott v krtší doě než umožňuje kskádní řzení, můžeme přstoupt k dvoustupňové relzc porovnávcího ovodu. Střední průmyslová škol elektrotechncká, V Úžlně Prh

UA ALS UB ALS Or.. U A A A A B B B B A<B A=B A>B ACT... U A A A A B B B B A<B A=B A>B ACT U A A A A B B B B A<B A=B A>B ACT UA ALS UB ALS A<B A=B A>B A<B A=B A>B A<B A=B A>B AS, které relzují rtmercké logcké porovnání. UC ALS UD ALS.... U A A A A B B B B A<B A=B A>B UA ALS UA ALS UB ALS UC ACT VCC R ALS k A<B A=B A>B Or.. f f f f f f A<B A=B A>B Ve druhém stupn ovodu udeme porovnávt dílčí část oou čísel npř. v jednom ovodu nejnžší čtyř ty ( ) ( ), v druhém ovodu dlší čtyř ty ( ) ( ), td. V prvém stupn ovodu potom vyhodnotíme porovnání dílčích výsledků ze stupně druhého. N or.. je zorzen ukázk dvoustupňové relzce -tového porovnávcího ovodu. V přípdě rtmetckého porovnávání čísel musíme do výstupních funkcí zudovt vlv znmének oou vstupních čísel. Jedná-l se o čísl vyjádřená v dvojkovém doplňku, můžeme použít porovnávcí ovody AS neo Střední průmyslová škol elektrotechncká, V Úžlně Prh

Ovod Výstupy Aktvce Poznámk OK P = Q P = Q P > Q P > Q P < Q výstupu LS Ano Ne Ano Ne Ano Ne Logc ALS Ano Ne Ne Ne Ne Ano Logc ALS ALS Ne Ano Ne Ne Ne Ano Logc LS LS Ne Ano Ne Ano Ne Ne Logc ALS Ano Ne Ne Ne Ne Ano Logc ALS Ne Ano Ne Ne Ne Ano Logc LS LS Ne Ano Ne Ano Ne Ne Logc LS LS Ne Ano Ne Ano Ne Ano Logc ALS ALS Ne Ano Ne Ne Ne Ano Logc AS Ne Ne Ano Ne Ano Ano Reg. P AS Ano Ne Ano Ne Ano Reg.P Q Tulk Příkld Nvrhníte ovod relzující funkc A B pro devíttová čísl se znménkem ve formátu ± A A B A B A B Tulk. Pro výslednou funkc A B můžeme psát prvdvostní tulku., kde A B jsou solutní hodnoty čísel A B vyjádřené ty ž. Funkce A B A B můžeme vyjádřt vzthy A B = A < B A = B (. ) Pro výslednou funkc můžeme z pomoc rovnc (.) (.) psát tento logcký výrz A B.[ ]+ (. ) =. ( A > B ) + ( A = B ).[( A < B ) + ( A = B )] + = +.. ( A > B )(. A = B ) +..( A > B )., =.. + který relzuje ovod z or... ( A > B ) ( A B ) ( ) ( ) A B = = (. ) Střední průmyslová škol elektrotechncká, V Úžlně Prh

Mmo plkcí v kterých se oě porovnávná čísl mohou měnt (synchronzční ovody), exstují plkce porovnávjící vstupní dt s pevnou neměnnou hodnotou, jko jsou komprátory neo dresové dekodéry. V těchto přípdech můžeme vyjm popsných ovodů jž zmí- U UA P P=Q něných dresových P P P>Q dekodérů AS, P P ACT AS, td. použít speclzovné ovody P P U P I Y A > B určené k tomuto účelu. Q I Q I Jednu skupnu tvoří Q I Q progrmovtelné kom- Q R k I Y Q I Q I prátory t.., Q I VCC u nchž je hodnot Q ACT A B před použtím ovodu G G nprogrmován n ACT zvolenou hodnotu. Or.. Druhou skupnu tvoří dresové komprátory ALS, ALS ( dres) ALS, ALS ( dres), jejchž vstupy P, Ovod Výstup Btů Vstupy Progrmovtelné Normální ALS P = Q Čísl Q Čísl P ALS P = Q Čísl Q Čísl P ALS P = Q Čísl Q Čísl P P = Q Čísl P Q Tulk. P, P P určují nární počet nulových spodních dresovcích vodčů. Budou-l zároveň zývjící dresové vodče v log. ude pltný ktvční sgnál, ude výstup v ktvní úrovn log.. Příkld Nvrhněte dresový dekodér pro ktvc vstupních portů s dresm CCH, CDH, CEH CFH v dresovém prostoru dtové pmět procesoru. Přímo dresovtelný prostor procesoru je kb tudíž dresová sěrnce má dresovcích vodčů A ž A. Dtová pměť je ovládán řídícím sgnály RD (pro čtení) WR (pro záps). Z poždovných dres vstupních portů vyplývá, že dresové vodče musí nývt hodnot Střední průmyslová škol elektrotechncká, V Úžlně Prh

A A A A A A A A AA A A A A A A X X A A A A A A A A A A A A A A A A RD Or.. UA A B G ALS U A A A A A A A A A A A A A A A A P P P P G LS R k Y Y Y Y Y VCC CCH CDH CEH CFH kde X znčí log. neo log.. Neměnné hodnoty pro všechny porty jsou n dresových vodčích A ž A proto je udeme dekódovt dresovým komprátorem. K nulovým dresovým vodčům přdáme ještě nevyužté vstupy dresového komprátoru přpojíme je n jeho spodní dresové vodče. Protože předpokládáme nulových vstupních hodnot, přpojíme n vstupy P,P,P,P hodnotu (). K vytvoření ktvčních sgnálů od see odlšených dresovým vodč A A provedeme pomocí dekodéru ze typu ALS or.... Převodníky BIN-BCD BCD-BIN Čsto používnou opercí v číslcové technce je převod BCD-BIN čísl v BCD kódu n číslo nární (číslo ve dvojkové soustvě) převod BIN-BCD čísl nárního n číslo v BCD kódu. Převod BCD-BIN, který se relzuje jednodušej než převod BIN-BCD, je možné provádět výše popsným metodm. Tyto metody všk nejsou vhodné pro ovodové řešení n progrmové řešení n úrovn jzyk symolckých dres, lze je ez otíží relzovt ve vyšších progrmovcích jzycích. Postupy, které jsou vhodnější k ovodovému progrmovému řešení udeme lustrovt n dvou příkldech. Střední průmyslová škol elektrotechncká, V Úžlně Prh

Příkld Nvrhněte převodník čísl ž vyjádřeného v BCD kódu n číslo nární. Číslo v kódu BCD můžeme vyjádřt vzthem ( ) ( ) N =. +. +. +. +. +. +. + (. ) předstvují desítky jednotky čísl v BCD kódu znménko + předstvuje rtmetcký součet. Nejprve vyjádříme hodnotu jko + roznásoíme rovnc (.). Srovnáním jednotlvých výrzů podle mocnn n získáme tento výrz kde hodnoty ( ) ( ) ( ) ( ) N =. +. + +. + + +. + (. ) ( ) ( ) + +. + +. + N or.. je nkresleno výsledné zpojení ovodu, z použtí čtyřtových sčítček typu LS. Jednou z čsto používných opercí v číslcové technce je převod nárního čísl n číslo v desítkové soustvě, ve které ude kždá cfr vyjádřen v BCD kódu. S tkovým převodem se setkáváme všude, kde nměřenou zprcovnou hodnotu ude potře zorzt n dsplej přístroje. Převod nárního čísl do desítkové soustvy je možné provádět třem metodm: Or.. U A S A S A S A S B B B B C C LS U A S A S A S A S B B B B C C LS n n n ) postupným odečítáním mocnn zákldu, která je vhodná pro progrmové řešení ) postupného dělení zákldem, která je vhodná pro progrmové řešení, př kterém máme k dspozc operc dělení Střední průmyslová škol elektrotechncká, V Úžlně Prh

c) metodou využívjící prncp dekdcké korekce Poslední jmenovná metod je vhodná pro progrmové ovodové řešení, které je možné relzovt jk sekvenčním tk komnčním ovodem. Kždé nární číslo N můžeme vyjádřt vzthem N =. (. ) n n n +. +. +... +. + n n n který sndno uprvíme do tvru N (...( (. + ). + ). +... + ). + n n n = (. ) Z rovnce (.) vyplývá, že číslo N můžeme vytvořt postupnou sekvencí skládjící se z násoení dvěm přčtení dlšího koefcentu, který je roven neo. Jk vyplývá z vlstností dekdcké korekce je jsné, že ude-l mezvýsledek násoený dvěm dekdcké číslo, pk po jeho vynásoení přčtení dlšího koefcentu je možné relzovt dekdckou korekc, která výsledek opět převede n dekdcké číslo. Stuce je nlogcká s relzcí součtu dvou stejných BCD čísel s přenosem. Příkld Převeďte číslo n číslo dekdcké v BCD kódu. Počáteční stv.krok. + dekdcká korekce.krok (. + ). + dekdcká korekce.krok (...). + dekdcká korekce.krok (...). + dekdcká korekce Střední průmyslová škol elektrotechncká, V Úžlně Prh

.krok (...). + dekdcká korekce.krok (...). + dekdcká korekce Výsledek Tulk. Algortmus popsný tulkou. lze nejsnáze relzovt pomocí progrmu v jzyce symolckých dres pro příslušný mkroprocesor neo pomocí kskády sekvenčních ovodů, které modelují operce prováděné v jedné dekádě (dekdckou korekc + násoení dvěm). Ovod lze relzovt prlelní strukturou vytvořenou z ovodů relzujících operc v jedné dekádě trojúhelníkově se rozšřující v závslost n počtu nutných kroků délce převedeného čísl vz. t... V následující část textu shrnujeme možnost progrmové relzce tových opercí prostřednctvím progrmů v jzyce Python. Jednotlvé rtmetcké operce relzujeme pomocí řetězců, kde kždá pozce odpovídá jednomu tu. Tím kždý prvek řetězce nývá hodnoty jedn č nul. Předtím, než proereme jednotlvé operce, vytvoříme některé pomocné progrmy. Těm jsou progrmy pro převod mez dekdckou nární soustvou opčný převod mez těmto soustvm. Progrm pro převod mez dvěm soustvm prnt "progrm pro prevod dekdckeho csl n nrn " vysl=" " cslo =nt(rw_nput("zdej cslo pro prevod:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt vysl prnt "progrm pro prevod nrnho csl n dekdcke " ="" sum = k= for n rnge(,-,-): f []=="":sum =sum +k k=k* prnt sum Střední průmyslová škol elektrotechncká, V Úžlně Prh

Progrm pro součet dvou nárních čísel prnt "progrm pro vypocet souctu dvou nrnch csel " x="" y="" v="" for n rnge (,-,-): f x[]=="" nd y[]=="" nd not p: z= "" p= elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" elf x[]=="" nd y[]=="" nd not p: z="" v=z+v prnt x prnt y prnt v součet v nární soustvě += přenos do vyššího řádu += přenos do vyššího řádu += přenos do vyššího řádu Rozšíření předchozího přípdu o přenos z nžšího řádu : ++= přenos ++= přenos ++= přenos ++= přenos Střední průmyslová škol elektrotechncká, V Úžlně Prh

Poznámk: pltí zde zákony komuttvní soctvní. V následující tulce jsou všechny možnost. Tulk má celkem ** řádků : Tulk sčítání ve dvojkové soustvě Vstupní hodnoty Vysledek součtu Přenos Pops prolému: Př psní progrmu s výhodou použj možnost logckých opercí v podmínce - operátor nd. not.( nd logcký součn not negce podmínky) Pro hodnotu přenosu zvedu proměnou tytu oolen, která má hodnotu true, pokud je nenulová. Ve všech osttních přípdech má hodnotu flse V dlším textu uvádím postup pro relzc prvních dvou řádků výše uvedené tulky. Řetězec x oshuje jednu vstupní proměnou, řetězec y oshuje druhou vstupní proměnnou p oshuje číselnou hodnou přenosu z nžšího řádu. Vždy musíme řetězce zprcovávt po jednotlvých tech. Operce se musí provádět od nejnžších tů. Aychom vyrl určtou pozc ( - tou) používáme v cyklu záps řetězce x[] y[]. Hodnot z oshuje příslušný t výstupního řetězce. Záps: f x [] == nd y[] nd not p: z = elf x[]== nd y[] nd p: Střední průmyslová škol elektrotechncká, V Úžlně Prh

z = p= Veškeré ty výstupního řetězce z se nčítjí do řetězce v pomocí skládání řetězců (operátor +) směrem zlev po kždém průchodu cyklem.. v je n počátku deklrováno jko prázdný řetězec. Příkzem v = v = v + z Dlším možným prolémem je úprv oou operndů n řetězec stejné délky. Artmetku udeme demonstrovt n délce : To provedeme následujícím způsoem:. pomocí funkce len zjstíme délku vstupního řetězce znků. spustíme cyklus s prmetrem rnge (-len(). v tomto cyklu přdávám zprv znky nul. Progrm: prnt "progrm pro doplnění řetězce n. čísel n délku " =rw_nput("retezec:") x="" for n rnge (-len()): =x+ prnt Progrm pro výpočet rozdílu dvou nárních čísel. Postupujeme nprosto odoně. prnt "progrm pro vypocet rozdlu nrnch csel " =rw_nput("zdej cslo ve tvru retezec ") =rw_nput("zdej druhe clo ve tvru retezec ") v="" for n rnge (,-,-): f []=="" nd []=="" nd not p : x="" elf []=="" nd []=="" nd not p: p= x="" elf []=="" nd []=="" nd not p: x="" elf []=="" nd []=="" nd not p: x="" elf []=="" nd []=="" nd p: p= x="" elf []=="" nd []=="" nd p: x="" Střední průmyslová škol elektrotechncká, V Úžlně Prh

elf []=="" nd []=="" nd p: p= x="" elf []=="" nd []=="" nd p: p= x="" v=x+v prnt "rozdl csel: " prnt prnt prnt v Poznámk: Vstupní řetězce musíme zdávt v délce znků. Exstuje druhá možnost jk postupovt: Rozdíl převedeme n přčítání dvojkového doplňku. V tomto přípdě nejprve npíšeme progrm pro výpočet.doplňku (prostá negce). Progrm: prnt "progrm pro vypocet negce csel " ="" ="" for n rnge (): f []=="":pom="" f []=="":pom="" =+pom prnt prnt Poznámk: řetězec oshuje vstupní řetězec. Řetězec oshuje výstupní řetězec. Jko dlší krok přčteme rtmetcky k tkto získnému řetězc (tj. vytvoříme druhý doplněk). Pk provedeme výpočet rozdílu jko přčtení dvojkového doplňku. Doporučujeme progrm relzovt pomocí funkce, kterou můžeme v progrmu volt dvkrát: Poprvé pro přčtení (pro vytvoření. doplňku z negovného menštele) podruhé pro přčtení tkto vytvořeného doplňku k menšenc. Funkční progrm pro součet dvou dekckých čísel pomocí převodu do nární soustvy, rtmetckého součtu v nární soustvě převedení výsledku do dekdcké soustvy. prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro soucet:")) pom =cslo whle pom <>: x="" pom=cslo/ Střední průmyslová škol elektrotechncká, V Úžlně Prh

zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro soucet:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ def sect (u,w): x=u y=w v="" for n rnge (,-,-): f x[]=="" nd y[]=="" nd not p: z= "" p= elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= Střední průmyslová škol elektrotechncká, V Úžlně Prh

elf x[]=="" nd y[]=="" nd p: z= "" elf x[]=="" nd y[]=="" nd not p: z="" v=z+v return(v) prnt " vstupn nrn csl : ",, c=sect(,) prnt" vysledek nrnho souctu : ",c prnt "progrm pro prevod nrnho csl n dekdcke " =c sum = k= for n rnge(,-,-): f []=="":sum =sum +k k=k* prnt " vysledek v dekdcke soustve ",sum Výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro prevod dekdckeho csl n nrn zdej.cslo pro soucet: progrm pro prevod dekdckeho csl n nrn zdej.cslo pro soucet: progrm pro doplnění řetězce n. čísel n délku progrm pro doplnění řetězce n. čísel n délku vstupn nrn csl : vysledek nrnho souctu : progrm pro prevod nrnho csl n dekdcke vysledek v dekdcke soustve Střední průmyslová škol elektrotechncká, V Úžlně Prh

Funkční progrm pro rozdíl dvou dekdckých čísel (opět převod dekdckého čísl do nární soustvy, výpočet druhého doplňku menštele, přčtení druhého doplňku k menšenc výsledek převést do dekdcké soustvy): prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro rozdl:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro rozdl:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ vysl= prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ prnt "progrm pro vypocet negce csel " = ="" for n rnge (): f []=="":pom="" f []=="":pom="" =+pom vysl= prnt " kontrol = vypocet negce " prnt prnt vysl prnt def sect (u,w): x=u y=w Střední průmyslová škol elektrotechncká, V Úžlně Prh

v="" for n rnge (,-,-): f x[]=="" nd y[]=="" nd not p: z= "" p= elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" elf x[]=="" nd y[]=="" nd not p: z="" return(v) v=z+v c=sect(vysl,"") prnt " kontrol souctu - vytvoření. doplnku" prnt vysl prnt "" prnt c prnt d=sect(vysl,c) prnt " kontrol souctu - proveden rozdlu dvou nrnch csel" prnt vysl prnt c prnt d prnt" vysledek nrnho rozdlu : ",d prnt prnt "progrm pro prevod nrnho csl n dekdcke " =d sum = k= for n rnge(,-,-): f []=="":sum =sum +k k=k* prnt " vysledek v dekdcke soustve ",sum Střední průmyslová škol elektrotechncká, V Úžlně Prh

Výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro prevod dekdckeho csl n nrn zdej.cslo pro rozdl: progrm pro prevod dekdckeho csl n nrn zdej.cslo pro rozdl: progrm pro doplnění řetězce n. čísel n délku progrm pro doplnění řetězce n. čísel n délku progrm pro vypocet negce csel kontrol = vypocet negce kontrol souctu - vytvoření. doplnku kontrol souctu - proveden rozdlu dvou nrnch csel vysledek nrnho rozdlu : progrm pro prevod nrnho csl n dekdcke vysledek v dekdcke soustve Práce s nverzním kódem Inverzní kód prcuje n áz tzv. prvního doplňku (záporná čísl se vytváří pouze nverzí všech tů následně, pokud vznkl kruhový přenos tj. stv, kdy je přenos z nejvyššího význmového tu, se provede znovu výpočet s rtmetckým přčtením jednotky do nejnžšího tu. Příkld: - = = Střední průmyslová škol elektrotechncká, V Úžlně Prh

. doplněk = soucet: Poznámk: vznkl kruhový přenos to znmená nové sčítání: Poznámk: kruhový přenos jž nevznkl tk toto je výsledek Aychom mohl výpočet provést, musíme nejprve modfkovt vlstní součet. Zde udeme předávt hodnoty výsledek jko řetězec přenos jko řetězec (Příkz str(p) vytvoří z proměné typu číslo proměnnou typu strng) Výps modfkovné funkce pro soucet (souor soucet.py) def sect (u,w): x=u y=w v="" for n rnge (,-,-): f x[]=="" nd y[]=="" nd not p: z= "" p= elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" Střední průmyslová škol elektrotechncká, V Úžlně Prh

elf x[]=="" nd y[]=="" nd not p: z="" v=z+v return(v,str(p)) Vyvolání práce s touto funkcí (soucet dvou kldných čísel): mport soucet u="" v="" x=soucet.sect(u,v) prnt "vysledek ",x[],"prenos ",x[] f x[]=="": x=soucet.sect(x[],"") prnt " celkovy vysledek ",x[] Celý progrm pro odčítání: mport soucet u="" v="" prnt "progrm pro vypocet negce csel " =v ="" for n rnge (): f []=="":pom="" f []=="":pom="" =+pom w= x=soucet.sect(u,w) prnt "vysledek ",x[],"prenos ",x[] f x[]=="": x=soucet.sect(x[],"") prnt " celkovy vysledek ",x[] Zde je výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. Střední průmyslová škol elektrotechncká, V Úžlně Prh

IDLE.. ============================= RESTART ================================ progrm pro vypocet negce csel vysledek prenos celkovy vysledek Zde je celý progrm (převedení z dekdcké soustvy do nární, výpočet nární operce zpětné převedení do dekdcké soustvy) : prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro rozdl:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro prevod dekdckeho csl n nrn " vysl="" cslo =nt(rw_nput("zdej.cslo pro rozdl:")) pom =cslo whle pom <>: x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl cslo =pom vysl= "" +vysl prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ vysl= prnt "progrm pro doplnění řetězce n. čísel n délku " =vysl x="" for n rnge (-len()): =x+ prnt "progrm pro vypocet negce csel " = ="" for n rnge (): f []=="":pom="" f []=="":pom="" =+pom vysl= prnt " kontrol = vypocet negce " prnt Střední průmyslová škol elektrotechncká, V Úžlně Prh

prnt vysl prnt mport soucet u=vysl v=vysl x=soucet.sect(u,v) prnt "vysledek ",x[],"prenos ",x[] f x[]=="": x=soucet.sect(x[],"") prnt " celkovy vysledek v nrn soustve ",x[] prnt d=x[] prnt "kontrol vysledku nrnch operc" prnt vysl prnt vysl prnt d prnt" vysledek nrnho rozdlu : ",d prnt prnt "progrm pro prevod nrnho csl n dekdcke " =d sum = k= for n rnge(,-,-): f []=="":sum =sum +k k=k* prnt " vysledek v dekdcke soustve ",sum Zde je výsledek ěhu celého progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro prevod dekdckeho csl n nrn zdej.cslo pro rozdl: progrm pro prevod dekdckeho csl n nrn zdej.cslo pro rozdl: progrm pro doplnění řetězce n. čísel n délku progrm pro doplnění řetězce n. čísel n délku progrm pro vypocet negce csel kontrol = vypocet negce vysledek prenos celkovy vysledek v nrn soustve Střední průmyslová škol elektrotechncká, V Úžlně Prh

kontrol vysledku nrnch operc vysledek nrnho rozdlu : progrm pro prevod nrnho csl n dekdcke vysledek v dekdcke soustve Artmetcké operce: Zákldní rtmetckou opercí je v počítčích sčítání. Odčítání lze převést n přčítání dvojkového doplňku. Násoení lze převést n přčítání, dělení n odčítání. To pk pomocí přčítání dvojkového doplňku zpět n sčítání. Relzce násoení pomocí sčítání: prnt "progrm pro nsoen pomoc sctn" =nt(rw_nput("zdej.opernd : ")) =nt(rw_nput("zdej.opernd : ")) = x= whle > : x=x+ =- prnt "vysledek nsoen je ",x Zde je výsledek: Python.. (#, My, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro nsoen pomoc sctn zdej.opernd : zdej.opernd : vysledek nsoen je Relzce dělen pomoc odčítání: prnt "progrm ptro delení pomocí odečítání" =nt(rw_nput("zdej delenec : ")) =nt(rw_nput("zdej deltel : ")) x=-((/)*) = Střední průmyslová škol elektrotechncká, V Úžlně Prh

whle >= x: =- =+ prnt "vysledek delen je ",- Zde je výsledek: Python.. (#, My, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm ptro delení pomocí odeèítání zdej delenec : zdej deltel : vysledek delen je Druh odmocnn prnt " druh odmocnn " =nt(rw_nput(" zdej cslo :")) =. whle ((**) < ): =+. c=round (,) prnt " vysledek.",c Zde využíváme vlsnost, že postupně zvyšujeme hodnotu proměnné od hodnoty nul vždy testujeme, zd druhá mocnn tohoto čísl je menší. V opčném přípdě jsme nlezl správné řešení. Smozřejmě, rychlejšího výsledku ychom mohl dosáhnout s použtím Newtonovy metody. Výhod výše uvedeno lgortmu je všk v tom, že lze relzovt s mnmálním úprvm vyšší odmocnny než dvě. Zde je výsledek ěhu progrmu: Python.. (#, My, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. Střední průmyslová škol elektrotechncká, V Úžlně Prh

IDLE.. ============================== RESTART ================================ druh odmocnn zdej cslo : vysledek.. Násoení dělení Vytvořte progrmy, které funkc násoení dělení nhrdí funkcem sčítání resp. odčítání. Sčítání odčítání relzujte v nární soustvě včetně příslušných převodů mez dekdckou nární soustvou. Progrm pro násoení prnt "progrm pro nsoen " =nt(rw_nput("zdej ")) =nt(rw_nput("zdej ")) zytek = vysledek= whle zytek >: zytek=zytek- vysledek=vysledek+ prnt vysledek Zde je výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro nsoen zdej zdej Nyní převedeme jž známé část progrmů n funkce: souor sctn.py oshuje sčítán v nární soustvě: def sect (u,w): x=u y=w v="" Střední průmyslová škol elektrotechncká, V Úžlně Prh

for n rnge (,-,-): f x[]=="" nd y[]=="" nd not p: z= "" p= elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd not p: z= "" elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" p= elf x[]=="" nd y[]=="" nd p: z= "" elf x[]=="" nd y[]=="" nd not p: z="" v=z+v return(v) souor neg.py oshuje negc : def negce(): ="" for n rnge (): f []=="":pom="" f []=="":pom="" return() =+pom Souor prevodn. py převádí do nární soustvy: def prevodn (cslo): vysl="" pom =cslo c= f not pom: c= vysl="" whle pom <> nd c : x="" pom=cslo/ zytek =cslo-pom* f zytek== : x="" vysl=x+vysl Střední průmyslová škol elektrotechncká, V Úžlně Prh

cslo =pom f c: vysl= "" +vysl =vysl x="" for n rnge (-len()): =x+ return() Souor prevoddekdcky oshuje prevod do dekdcke soustvy ze soustvy nární: def prevoddec(): sum = k= for n rnge(,-,-): f []=="":sum =sum +k k=k* return(sum) Souor odc. py oshuje odctn v nární soustve: mport sctn,neg def odctn(,): c=neg.negce() d=sctn.sect(c,"") e=sctn.sect(d,) return(e) N zákldě těchto funkcí ylo vytvořeno sčítání dekdckých čísel souor sctn.dec: mport sctn,neg,prevodn,prevoddekdcky def sctn(,): c=prevodn.prevodn() d=prevodn.prevodn() e=sctn.sect(c,d) f=prevoddekdcky.prevoddec(e) return (f) pk odčítání souor odctn.py: mport odc,prevodn,prevoddekdcky def odctn (,): c=prevodn.prevodn() d=prevodn.prevodn() e=odc.odctn(c,d) f=prevoddekdcky.prevoddec(e) return(f) Střední průmyslová škol elektrotechncká, V Úžlně Prh

N zákldě těcho funkcí ylo modfkováno ) násoení: prnt "progrm pro nsoen " mport sctndec,odctndec =nt(rw_nput("zdej ")) =nt(rw_nput("zdej ")) pocet= zytek = vysledek= whle zytek >: pocet=sctndec.sctn(pocet,) zytek=odctndec.odctn(zytek,) vysledek=sctndec.sctn(vysledek,) prnt vysledek Zde je výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro nsoen zdej zdej ) dělení prnt "progrm pro delen =nt(rw_nput("zdej ")) =nt(rw_nput("zdej ")) pocet= vysledek= whle vysledek>=: pocet=pocet+ vysledek=vysledek- prnt pocet Zde je výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Střední průmyslová škol elektrotechncká, V Úžlně Prh

Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro delen zdej zdej Modfkovný progrm pro prác v nární soustvě: prnt "progrm pro delen " mport sctndec,odctndec =nt(rw_nput("zdej ")) =nt(rw_nput("zdej ")) pocet= vysledek= whle vysledek>=: pocet=sctndec.sctn(pocet,) vysledek=odctndec.odctn(vysledek,) prnt pocet Výsledek ěhu progrmu: Python.. (r:, Fe, ::) [MSC v. t (Intel)] on wn Type "copyrght", "credts" or "lcense()" for more nformton. Personl frewll softwre my wrn out the connecton IDLE mkes to ts suprocess usng ths computer's nternl loopck nterfce. Ths connecton s not vsle on ny externl nterfce nd no dt s sent to or receved from the Internet. IDLE.. ============================== RESTART ================================ progrm pro delen zdej zdej Závěr: Výše uvedené progrmy demonstrují možnost práce v nární soustvě, v doplňkovém nverzním kódu. Tyto znlost jsou důležté pro pochopní práce počítče především pro progrmování procesorů typu RISC, kde téměř vždy chyí v nstrukčním souoru nstrukce pro násoení dělení. Střední průmyslová škol elektrotechncká, V Úžlně Prh