[ bohuc @ 16.11.2005. 09:31 ] @
| Problem:
Oduzeti dva cela broja, pretvaranjem u binarni sistem, a da se koristi sabiranje istih mi je jasno uz pomoc potpunog gomplementa, a kako to isto primeniti na decimalne brojeve , tj sa zarezom?
53-21=32
110101
- 10101
=100000
tj.
110101
+ 101010
+ 1
=1100000
time sto prvu jedinicu zanemarujemo
53.25-20.19=????? |
[ dejan.djuric @ 17.11.2005. 22:56 ] @
Definicija: Ako je N pozitivan broj osnove r čiji celobrojni deo ima n, a razlomljeni deo m cifara, onda je njegov (r-1) komplement broj određen sa:
(r-1)komplement(N)=(r^n)-(r^(-m))-N.
U tvom slučaju, reč je o binarnim brojevima, dakle osnova je r=10.
Npr. tražiš 9-kom(20.19).
Po definiciji imamo:
9-kom(20.19)=((10)^2)-((10)^(-2))-20.19=100-0.01-20.19=79.80
Da ne bi stalno oduzimao evo i jedne olakšice:
9-komplement decimalnog broja se dobija tako što se svaka njegova oduzme od 9.
Postupak oduzimanja dvaju POZITIVNIH brojeva M i N (M-N) osnove r pomoću (r-1)komplementa:
1. Umanjenik M i umanjilac N se svedu na istu dužinu, tj. moraju njihovi celobrojni delovi mežusobmno moraju da imaju isti broj cifara i njihovi razlomljeni delovi moraju da imaju isti broj cifara međusobno. Npr., ako je M=100.563 i N=33.2134, onda ih treba zapisati u obliku: M=100.5630 i N=033.2134
2. Umanjenik M se sabira sa (r-1)komplementom(N):
U tvom slučaju: M=53.25, N=20.19 ==> (9)kom(20.19)=79.80
Dakle imamo: 53.25+79.80=(1)33.05, gde je cifra 1 u zagradi cifra prenosa nastala po sabiranj ucifara najvišeg razreda.
3. Ispituje se postojanje cifre 1 za prenos nakon sabiranja cifara najvišeg razreda:
a) ako ta cifra postoji, onda se ona ne dopisuje u najviši razred dobijene sume, već se dodaje cifri najnižeg razreda te sume. Ovako modifikovana suma predstavlja traženi rezultat, tj. razliku M-N. Ovo je slučaj koji se javlja kad je M>N.To je slučaj sa ovim primerom, pa imao da je M+9-kom(N)=33.05+0.01=33.06 što je i tražena razlika.
b) ako ta cifra ne postoji onda je traženi rezultat (r-1)-kom(dobijene sume) sa predznakom minus. Slučaj M<N.
Nadam se da sam ti pomogao.
[Ovu poruku je menjao dejan.djuric dana 19.11.2005. u 17:34 GMT+1]
[ bohuc @ 19.11.2005. 00:29 ] @
Sad sam malo zbunjen, ali mislim da mi je jasno i uklapa mi se u dekadnom sistemu ili kako rece brojevi sa osnovom 10.
Ali mi ne ide , zato sto je u mom slucaju BINARNI sistem, odnosno brojevi sa osnovom r=2.
[ dejan.djuric @ 19.11.2005. 16:36 ] @
U prethodnoj poruci sam izneo postupak za brojeve bilo koje osnove.
Evo jedan primer za oduzimanje dva razlomljena binarna broja:
Neka su M=1010100.11 i N=100100.001. Tražimo razliku M-N.
Prvo svodimo M i N na istu dužinu, dakle: M=1010100.110 i N=0100100.001
Tražimo (1)kom(N), imajući u vidu da je osnova r=10 (dvojka u binarnom sistemu):
(1)kom(0100100.001)=((10)^7)-((10)^(-3))-0100100.001=10000000-0.001-0100100.001=1011011.110
ili, da ne bi stalno vršio stepenovanje pa oduzimanje:
1-komplement binarnog broja se dobija tako što se svaka njegova cifra 1(0) zameni cifrom 0(1).
Sada sabiramo M i (1)kom(N) i ispitujemo postojanje cifre 1 za prenos po sabiranju cifara najvišeg razreda:
1010100.110+1011011.110=(1)0110000.100
Dakle postoji cifra 1 za prenos nastala po sabiranju cifara najvišeg razreda (slučaj a), što znači da se ona ne dopisuje u sledeći viši razred već se dodaje najnižem razredu:
Dakle, tražena razlika je 0110000.100+0.001=0110000.101 što je i traženi rezultat.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.