[ EmulatE @ 05.10.2014. 16:39 ] @
Imam broj 123.456 koji treba da pretvorim u binarni. Za ceo deo (123) znam i to je 1111011. E sada za decimalni deo (.456) znam da treba da se mnozi sa 2 ali mi nije jasan bas princip rada. hvala u napred
[ alasalas @ 05.10.2014. 17:01 ] @
Da, decimalni deo se mnozi sa 2. Ako je proizvod manji od 1, onda je cifra u binarnom obliku nula, a ako je veci od 1 onda je cifra u binarnom 1 i od proizvoda se oduzima 1.

U konkretnom slucaju:
0.456*2=0.912 => u binarnom .0
0912*2=1.824 => u binarnom .01
0.824*2=1.684 => u binarnom .011
0.684*2 ...
Znaci pocetak tvog broja je: 1111011.011xxxx



Ovo ponavljas dok god proizvod nije jednak 1 ili dok ustanovis da se neka cifra (ili blok cifara) periodicno ponavljaju...
[ Shadowed @ 05.10.2014. 17:05 ] @
Ako se dobro secam, mnozis decimalni deo sa 2, ako dobijes broj manji od 1, pises nulu, ako dobijes veci ili jednak 1, pises 1. Postupak ponavljas dok ti ne ostane nula (ili ti ne dosadi).

U tvom slucaju ovako:
0.456*2 = 0.912 => 0
0.912*2 = 1.824 => 1
0.824*2 = 1.648 => 1
0.648*2 = 1.296 => 1
0.296*2 = 0.592 => 0
0.592*2 = 1.184 => 1
0.184*2 = 0.368 => 0
0.368*2 = 0.736 => 0
0.736*2 = 1.472 => 1
(evo, meni dosadilo) :)

Btw, proveri, racunao sam napamet pa sam mozda negde omasio.
[ EmulatE @ 05.10.2014. 17:09 ] @
Hvala ljudi, radili smo samo par primera gde se posle 3 kruga dobije resenje a ovo u beskonacno me malo zbunilo. @Shadowed dobro je :D