Korisnički Kontrolni Panel
Pogledajte svoj profil
Pogledajte svoje postove
ČPP
Prijavite se

Matematički forum na kojem možete da diskutujete o raznim matematičkim oblastima, pomognete drugima oko rešavanja zadataka, a i da dobijete pomoć kada vam zatreba


















Index stranica OSTALE MATEMATIČKE OBLASTI MATEMATIKA U INFORMATICI

Brojni sistemi – aritmetičke operacije

Brojni sistemi, Bulova algebra, binarna aritmetika itd.

Brojni sistemi – aritmetičke operacije

Postod blake » Subota, 09. Novembar 2013, 22:43

Oduzimanje - binarni sustav

1111
-1010
0101

A sad metoda dvojni komplement

11101
-1001

Zamjenjujemo nule i jedinice od umanitelja
Zbrajamo

11101
-10110
1
1|10100

Sad ne razumin kako se stvara ova crvena jedinica, kao ni način na koji se zbrajaju ovdi [inlmath]0[/inlmath] i [inlmath]1[/inlmath], čini mi se ka da nema veze s onim osnovnim pravilima?


Množenje - heksadekadski sustav
1234⋅1054
1234
0000
5B04
+ 48D0
1293910

Zbrajanje razumin, ali ovo crveno ne...
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta

Sharuj ovu temu na:

Share on Facebook Facebook Share on Twitter Twitter Share on MySpace MySpace Share on Google+ Google+
  • +1

Re: Brojni sistemi – aritmetičke operacije

Postod Daniel » Nedelja, 10. Novembar 2013, 01:33

blake je napisao:
11101
-1001

Zamjenjujemo nule i jedinice od umanitelja
Zbrajamo

11101
-10110
1
1|10100

Sad ne razumin kako se stvara ova crvena jedinica, kao ni način na koji se zbrajaju ovdi [inlmath]0[/inlmath] i [inlmath]1[/inlmath], čini mi se ka da nema veze s onim osnovnim pravilima?

Od broja [inlmath]11101_2[/inlmath] treba oduzeti broj [inlmath]1001_2[/inlmath]. To je isto kao da broju [inlmath]11101_2[/inlmath] treba dodati broj [inlmath]-1001_2[/inlmath]. Ali, pošto je ovde u pitanju dvojni komplement, negativni brojevi se ne zapisuju s tim minusom, već je postupak prevođenja pozitivnog u negativan broj drugačiji. Da bismo u dvojnom komplementu od pozitivnog broja dobili negativan broj isti po apsolutnoj vrednosti, potrebno je da sve nule tog broja pretvorimo u jedinice i sve jednicie pretvorimo u nule, a zatim tako dobijen broj još saberemo s jedinicom.
Primer: broj [inlmath]5[/inlmath] u dekadnom zapisu izgleda ovako: [inlmath]0101_2[/inlmath]. Kako će u binarnom zapisu, u dvojnom komplementu, izgledati dekadni broj [inlmath]-5[/inlmath]? Pretvorimo nule u jedinice, jedinice u nule i dobijemo [inlmath]1010[/inlmath]. Sada na to dodamo [inlmath]1[/inlmath] i dobijemo [inlmath]1011_2[/inlmath]. I to je dekadni broj [inlmath]-5[/inlmath] u dvojnom komplementu.

Da se vratimo sad na ovaj tvoj slučaj. Iz načina na koji su radili očigledno je da je ovde u pitanju 5-bitni zapis. Prema tome, broj [inlmath]1001_2[/inlmath] (koji oduzimamo od broja [inlmath]11101_2[/inlmath]) pišemo u 5-bitnom zapisu: [inlmath]01001_2[/inlmath]. Promenimo mu sve jedinice u nule i nule u jedinice i dobijemo [inlmath]10110[/inlmath], zatim na to dodamo jedinicu i dobijemo [inlmath]10111_2[/inlmath]. Time smo dobili broj zapisan u komplementu dvojke, koji je po apsolutnoj vrednosti jednak broju [inlmath]1001_2[/inlmath], ali s predznakom minus. Kad njega dodamo na broj [inlmath]11101_2[/inlmath], to je isto kao da smo od broja [inlmath]11101_2[/inlmath] oduzeli broj [inlmath]1001_2[/inlmath].

E sad, ono što je zbunjujuće u ovome što si ti napisao je to što ne treba da stoji minus kao da se izvršava oduzimanje, već treba plus, budući da vršimo sabiranje. Znači, ne treba

11101
-10110
1
1|10100

već treba

11101
10110
+ 1
1|10100

I tu se nule i jedinice sabiraju po sasvim uobičajenom pravilu: [inlmath]0+0[/inlmath] daje nulu, [inlmath]0+1[/inlmath] ili [inlmath]1+0[/inlmath] daje jedinicu, a [inlmath]1+1[/inlmath] daje nulu i prelazak jedinice u sledeći razred.

U tom tvom primeru, dakle, oni nisu broj odmah prebacivali u dvojni komplement pa ga tako dodavali, nego su posebno dodavali broj kojem su jedinice zamenjene nulama i nule jedinicama, a posebno, nakon toga, dodali [inlmath]1[/inlmath] – što dođe na isto kao da su odmah sabirali broj zapisan u dvojnom komplementu.

blake je napisao:
1234⋅1054
1234
0000
5B04
+ 48D0
1293910

Zbrajanje razumin, ali ovo crveno ne...

To crveno ti predstavlja proizvod dva broja u heksadekadnom sistemu:
[inlmath]1234_{16}\cdot 5_{16}=5B04_{16}[/inlmath]
[inlmath]1234_{16}\cdot 4_{16}=48D0_{16}[/inlmath]

Kako množimo [inlmath]1234_{16}[/inlmath] sa [inlmath]5_{16}[/inlmath]? Pomnožimo [inlmath]5[/inlmath] s krajnjom desnom cifrom broja [inlmath]1234[/inlmath], tj. sa [inlmath]4[/inlmath]. Dobijemo [inlmath]20[/inlmath]. To je broj koji je za [inlmath]4[/inlmath] veći od broja [inlmath]16[/inlmath], znači, došlo je do prekoračenja. Četvorku zapisujemo, jedinicu (zbog prekoračenja) prenosimo u razred ulevo. Sada množimo [inlmath]5[/inlmath] sledećom cifrom broja [inlmath]1234[/inlmath] krećući se prema levo. To je cifra [inlmath]3[/inlmath]. Dobijemo broj [inlmath]15[/inlmath], ali, zbog prenosa jedinice, na taj broj dodajemo jedinicu i dobijemo [inlmath]16[/inlmath]. Pošto je to broj koji je za [inlmath]0[/inlmath] veći od broja [inlmath]16[/inlmath], pišemo nulu levo od one četvorke i ponovo prenosimo jedinicu, jer smo i ovde imali prekoračenje. Sada [inlmath]5[/inlmath] množimo narednom cifrom broja [inlmath]1234[/inlmath], cifrom [inlmath]2[/inlmath]. Dobili smo broj [inlmath]10[/inlmath] na koji dodajemo jedinicu koju smo preneli i to je broj [inlmath]11[/inlmath], tj. cifra [inlmath]B[/inlmath] u heksadekadnom sistemu. Pišemo [inlmath]B[/inlmath] i ne prenosimo jedinicu u sledeći razred, jer sada nije bilo prekoračenja. Broj [inlmath]5[/inlmath] sada množimo sledećom (i poslednjom prema levo) cifrom broja [inlmath]1234[/inlmath], cifrom [inlmath]1[/inlmath]. Dobijamo broj [inlmath]5[/inlmath], kojem ne dodajemo jedinicu, jer nije bilo prenosa jedinice od malopre. Pišemo broj [inlmath]5[/inlmath] – i dobili smo rezultat ovog množenja, heksadekadni broj [inlmath]5B04_{16}[/inlmath].
Pokušaj sad isto to i za [inlmath]1234_{16}\cdot 4_{16}[/inlmath].

(Pretpostavljam da ti je jasno zašto smo broj [inlmath]1234[/inlmath] množili sa [inlmath]1[/inlmath], [inlmath]0[/inlmath], [inlmath]5[/inlmath] i sa [inlmath]4[/inlmath] – to su cifre heksadekadnog broja [inlmath]1054[/inlmath]; znači, postupak množenja heksadekadnih brojeva je po istom principu kao i kod dekadnog množenja, koje znamo još iz prvog osnovne.)
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 9378
Lokacija: Beograd
Zahvalio se: 5214 puta
Pohvaljen: 4974 puta

Re: Brojni sistemi – aritmetičke operacije

Postod blake » Nedelja, 10. Novembar 2013, 18:46

Dijeljenje - binarni sustav

11100,001 : 10,1 = 1

111000,01 : 101 = 1
-101
1000
-101
110
-101
101
-101
0


Prvo ne razumin zašto su se dvi nule spuštale? I kako do kraja ispisat rezultat?



Dijeljenje - oktalni sustav


[inlmath](3156606)_8 : (1325)_8 = (2212)_8[/inlmath]
-2652
3046
-2652
1740
-1325
-4136
2652


Razumim nekako zašto je u rezultatu prvo broj 2, a ne 1 (ostatak jel), ali onda množenje natrag nikako ne razumin...Kako to da su uvik 4 znamenke i kako to da je sve jedno ispod drugog?



Dijeljenje - heksadekadski sustav


[inlmath](5BDF8D89)_{16} : (8A7)_{16} = (A9E49)_{16}[/inlmath]
-5686
559B
- 4DDF
7BCD
-7922
2AB8
-2296
81C9
81C9



:text-anyone:
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta

  • +1

Re: Brojni sistemi – aritmetičke operacije

Postod Daniel » Ponedeljak, 11. Novembar 2013, 02:48

blake je napisao:Dijeljenje - binarni sustav

11100,001 : 10,1 = 1

111000,01 : 101 = 1
-101
1000
-101
110
-101
101
-101
0


Prvo ne razumin zašto su se dvi nule spuštale? I kako do kraja ispisat rezultat?

Prvo, ovaj kôd nije ispravno poravnat, a rezultat treba da bude 1011,01. Ceo kôd treba ovako da izgleda:
111000,01 : 101 = 1011,01
-101
1000
-101
110
-101
101
-101
0

Al' da krenemo redom. Deljenje binarnih brojeva je vrlo slično deljenju dekadnih brojeva. Imamo, znači, dva broja koja treba podeliti:
111000,01 : 101 =

Uočimo najmanju grupu krajnjih levih cifara deljenika koje formiraju broj veći od delioca. U ovom slučaju, to su cifre 111. Ispod njih dopisujemo delilac s minusom:
111000,01 : 101 =
-101

Pošto se 101 sadrži u 111, desno od znaka jednakosti pišemo 1; izvršimo oduzimanje 101 od 111 i dobijemo 10, a zatim na taj broj dopisujemo prvu narednu cifru deljenika, a to je 0:
111000,01 : 101 = 1
-101
100

Međutim, pošto se 101 ne sadrži u broju 100, na rezultat desno od znaka jednakosti sad dopisujemo 0, a zatim na 100 odmah dopisujemo prvu narednu cifru deljenika, a to je opet 0:
111000,01 : 101 = 10
-101
1000

E, to je bio taj korak koji je tebe zbunio. Znači, kad se delilac ne sadrži u broju ispod potpisa, onda ne činimo ništa, samo na rezultat desno od znaka jednakosti dopisujemo nulu i odmah na broj ispod potpisa dodajemo sledeću cifru deljenika. U ovom slučaju obe cifre deljenika su bile 0, otuda dve nule.
Pošto se sada 101 sadrži u broju 1000, na rezultat desno od znaka jednakosti dopisujemo 1, izvršimo oduzimanje 101 od 1000 i na dobijeni broj, a to je 11, dopisujemo narednu cifru deljenika, a to je 0:
111000,01 : 101 = 101
-101
1000
-101
110

Pošto se 101 sadrži u 110, na rezultat desno od znaka jednakosti dopisujemo 1, od 110 oduzimamo 101 i dobijamo 1. Dopisujemo sledeću cifru deljenika, međutim, pošto je to sad prva cifra deljenika iza zareza (zamalo da napišem decimalnog zareza, :mrgreen: ali ovde su binarni brojevi u pitanju), sada i na rezultat, desno od znaka jednakosti, dopisujemo zarez:
111000,01 : 101 = 1011,
-101
1000
-101
110
-101
10

Pošto se 101 ne sadrži u 10, na rezultat desno od znaka jednakosti dopisujemo nulu, a na 10 odmah dopisujemo sledeću cifru delioca, a to je 1:
111000,01 : 101 = 1011,0
-101
1000
-101
110
-101
101

Znači, ovde smo sad imali isti slučaj kao sa onim dvema nulama, da smo odjednom dopisali dve cifre deljenika, jer se delilac nije sadržavao u prethodno dobijenom broju.
Sada imamo broj 101, koji je jednak deliocu, prema tome, na rezultat desno od znaka jednakosti dopisujemo 1, a kad od 101 oduzmemo 101 rezultat je, naravno, nula, tako da je postupak ovime završen.
111000,01 : 101 = 1011,01
-101
1000
-101
110
-101
101
-101
0


Preostala dva pitanja drugi put. ;) :text-goodnightt: :zzz2:
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 9378
Lokacija: Beograd
Zahvalio se: 5214 puta
Pohvaljen: 4974 puta

  • +1

Re: Brojni sistemi – aritmetičke operacije

Postod Daniel » Utorak, 12. Novembar 2013, 01:43

OK, nastavljamo...
blake je napisao:
Dijeljenje - oktalni sustav


[inlmath](3156606)_8 : (1325)_8 = (2212)_8[/inlmath]
-2652
3046
-2652
1740
-1325
-4136
2652


Razumim nekako zašto je u rezultatu prvo broj 2, a ne 1 (ostatak jel), ali onda množenje natrag nikako ne razumin...Kako to da su uvik 4 znamenke i kako to da je sve jedno ispod drugog?

Pa i ne treba da bude jedno ispod drugog, razmaci su ovde potpuno izgubljeni, pa je zato sve „slepljeno“ uz desnu ivicu. A i poslednjih par redova nije napisano kako treba. S ispravim poravnanjem i tom korekcijom na kraju trebalo bi da izgleda ovako:
3156606 : 1325 = 2212
-2652
3046
-2652
1740
-1325
4136
-2652
1264

I u oktalnom sistemu deljenje je vrlo slično dekadnom: uočimo najmanju grupu levih cifara deljenika koje formiraju broj veći od delioca. U ovom slučaju, to nije 3, to nije 31, to nije 315, već je to grupa 3156. Sad gledamo koliko se puta delilac, 1325, sadrži u broju 3156. Odgovor je 2, jer ako oktalno pomnožimo 1325 sa 2, dobićemo 2652, koji jeste manji od 3156, ali ako bismo oktalno pomnožili 1325 sa 3, dobili bismo 4177, što bi bilo veće od 3156. Znači, desno od znaka jednakosti pišemo 2, a od 3156 oduzimamo 1325 pomnoženo sa 2, tj. oduzimamo 2652 i dobijamo broj 304:
3156606 : 1325 = 2
-2652
304

Na 304 dopisujemo narednu cifru deljenika, a to je 6 i dobijamo broj 3046:
3156606 : 1325 = 2
-2652
3046

Sada gledamo koliko se puta 1325 sadrži u 3046. Isto dvaput, jer je 1325 pomnoženo sa 2, tj. 2652, opet manje od 3046, dok bi 1325 pomnoženo sa 3 bilo 4177, a to bi bilo veće od 3046. Znači, na rezultat desno od znaka jednakosti dopisujemo opet dvojku, a od 3046 oduzimamo 1325 pomnoženo dvojkom, tj. oduzimamo 2652, nakon čega dobijamo 174. Na 174 dopisujemo prvu narednu cifru deljenika, a to je 0:
3156606 : 1325 = 22
-2652
3046
-2652
1740

Sad je prilično očigledno da je rezultat celobrojnog deljenja 1740 sa 1352 jednak jedinici. Dopisujemo jedinicu na rezultat, a od 1740 oduzimamo 1325 pomnožen – jedinicom:
3156606 : 1325 = 221
-2652
3046
-2652
1740
-1325
413

i dobijamo broj 413, na koji dopisujemo sledeću (i poslednju) cifru deljenika, a to je 6:
3156606 : 1325 = 221
-2652
3046
-2652
1740
-1325
4136

Koliko se puta 1325 sadrži u 4136? Ovde se lako možeš zaleteti, pa reći – 3 puta. Da, tri puta bi bilo, kad bi ovo bili dekadni brojevi. Ali, pošto su brojevi oktalni, da vidimo: 1325 oktalno pomnoženo sa 3 je 4177, a to je veće od 4136. Znači, ne sadrži se tri puta. A 1325 oktalno pomnoženo sa 2, već smo dvaput dosad videli da iznosi 2652, prema tome, 1325 se 2 puta sadržava u 4136. Dopisujemo dvojku na rezultat, a od 4136 oduzimamo 1325 pomnoženo dvojkom:
3156606 : 1325 = 2212
-2652
3046
-2652
1740
-1325
4136
-2652
1264

Pošto ste vi ovde završili sa zadatkom, znači da se tražilo da izračunate celobrojni količnik. Pri tom deljenju, ovo 1264 predstavlja ostatak.
Inače se to moglo sad i dalje terati, da se na rezultat dopiše zarez, pa se izračunavaju i cifre iza zareza, tako što se kao naredne cifre deljenika dopisuju nule, tj, sad bismo dobili broj 12640 za koji bismo proveravali koliko puta se 1325 sadržava u njemu itd. Tako smo, uosalom, i radili u prethodnom primeru s binarnim deljenjem, znači, nismo se bili zaustavili kod celobrojnog rezultata.

A kako to da su ovde uvek četiri cifre... Jednostavno, tako se potrefilo. Eto, da smo nastavili s određivanjem cifara iza zareza, sad bismo imali broj 12640, a on ima pet cifara... Nemoj gledati to koliko ima cifara, to je potpuno nebitno, gledaj da se držiš algoritma. :mhm:

blake je napisao:
Dijeljenje - heksadekadski sustav


[inlmath](5BDF8D89)_{16} : (8A7)_{16} = (A9E49)_{16}[/inlmath]
-5686
559B
- 4DDF
7BCD
-7922
2AB8
-2296
81C9
81C9

Ista stvar – da prvo to malo poravnamo:
5BDF8D89 : 8A7 = A9E49
-5686
559B
- 4DDF
7BCD
-7922
2AB8
-2296
81C9
-81C9
0

Najmanja grupa levih cifara deljenika koja je veća od delioca je 5BDF. E sad je, kod heksadekadnog sistema, već malo složenije ispitivanje koliko se puta delilac sadrži u nekom broju. Isprobavamo množenje broja 8A7 s raznim heksadekadnim ciframa i videćemo da, kad se pomnoži s B, dobićemo broj 5F2D, koji je veći od ovog našeg 5BDF, a kad ga pomnožimo sa A, dobićemo 5686, koji je manji od 5BDF. Prema tome, našli smo da se 8A7 sadrži u 5BDF A puta. Prva cifra rezultata će, dakle, biti A, a od 5BDF oduzimamo 8A7 pomnoženo sa A, tj. oduzimamo 5686 i dobijemo 559:
5BDF8D89 : 8A7 = A
-5686
559

E sad, na 559 treba dopisati prvu narednu cifru deljenika. To bi, ovako kako je deljenik napisan, trebalo da bude 8, međutim, dopisana je cifra B. Jeste, liče po obliku, pa si verovatno pogrešno prepisao, ali uopšte nemaju istu vrednost. :P Ipak, pošto ste u nekom od narednih koraka od 5598/559B oduzimali 4DDF i dobili 7BCD, jasno je da ne treba da stoji osmica, već B. Prema tome,
5BDFBD89 : 8A7 = A
-5686
559B

I tako do kraja, da sad ne ispisujem sve, princip si video. Na kraju dobiješ, za razliku od prethodnog, oktalnog primera, da je ovde ostatak jednak nuli, tj. dobije se tačan, celobrojni rezultat.
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 9378
Lokacija: Beograd
Zahvalio se: 5214 puta
Pohvaljen: 4974 puta

  • +1

Re: Brojni sistemi – aritmetičke operacije

Postod blake » Utorak, 12. Novembar 2013, 15:56

:text-goodpost:

:welovematemanija:
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta


Povratak na MATEMATIKA U INFORMATICI

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 3 gostiju


Index stranicaTimObriši sve kolačiće boarda
Danas je Utorak, 22. Septembar 2026, 12:36 • Sva vremena su u UTC + 1 sat [ DST ]
Pokreće ga phpBB® Forum Software © phpBB Group
Prevod – www.CyberCom.rs