GRY-Online.pl --> Archiwum Forum

konwersja liczby (dziesiętny na binarny)

08.02.2008
22:02
[1]

EartH [ Pretorianin ]

konwersja liczby (dziesiętny na binarny)

Witam proszę o szybką pomoc mam zamienić liczbę 193.54 z systemu dziesiętnego na binarny; problem dotyczy tego co jest po przecinku, nie wiem czy liczba powinna wynosić
11000001.110110 czy 11000001.011011
drugie pytanie dotyczy tego do ilu cyfr powinienem zapisać liczbę w systemie binarnym jeśli w dziesiętnym najmniejsza część liczby to część setna (0.01)
Jeśli ktoś byłby łaskaw jeszcze przedstawić konwersję części ułamkowej z systemu [2] na [8] i [16] byłbym bardzo wdzięczny. Pozdrawiam;)

08.02.2008
22:08
[2]

siekator [ Król Rybak ]

Start/Wszystkie programy/Akcesoria/Kalkulator/Widok/Naukowy

08.02.2008
22:11
[3]

EartH [ Pretorianin ]

dobrze Ty się już nie udzielaj bo pomóc to mi wcale nie pomogłeś

08.02.2008
22:15
[4]

Didier z Rivii [ life 4 sound ]



tu jest opisane jak zapisywać liczby rzeczywiste :)
choć jak już na pierwszy rzut oka widać zamienianie tego co jest po przecinku proste nie jest :)

08.02.2008
22:18
[5]

QrKo_ [ ]

Jak zamieniasz w slupku to liczby calkowite (przed przecinkiem) spisujesz od dolu, a po przecinku od gory :) Ile po przecinku, mnie uczyli ze max tyle co jest przed przecinkiem chyba ze skonczy sie wczesniej.

Zamiane na inne systemy mam gdzies w notatkach ktorych w tej chwili nie mam glowy szukac, wiec nie pomoge, ale na googlach na pewno bedzie duzo info na ten temat.


Didier z Rivii - jest bardzo proste :) bierzesz to po przecinku czyli 0,54 i mnozysz razy podstawe systemu czyli 2.

0,54 x 2 | 1
0,08 x 2 | 0
0,16 x 2 | 0
0,32 x 2 | 0
0,64 x 2 | 1
0,28 x 2 itd

I calosci spisujesz z prawej a ulamki przepisujesz nizej i ponownie mnozysz x2

08.02.2008
22:25
[6]

EartH [ Pretorianin ]

Czyli liczba 193.54 dziesiętnie to binarnie 11000001.011011 tak?


Nie rozumiem co oni tutaj piszą, np
0,15 [10] = 0,00(1001) [2]
dla mnie 0,15 [10] = 0,1111 [2]
nie będę tego czytał jutro mam egzamin i przydałoby się przed nim rozwiać wszelkie wątpliwości a nie nabierać nowych:P myślałem że to umiem a zacząłem robić przykład i mnie skołowało :/

08.02.2008
22:29
[7]

EartH [ Pretorianin ]

Aaa chyba czaję=) <glupek>

08.02.2008
22:30
[8]

Didier z Rivii [ life 4 sound ]

QrKo_ --> sprytne :)

EartH --> nie mozesz traktować tego po przecinku jakby to była zwykła liczba w sensie ze 15 zapisujesz jako 1111, musisz pamiętać ze jest to 15/100 :) wiec calkiem coś innego. Wykuj metode Qrko_ i bedzie git :)

08.02.2008
22:32
[9]

DEXiu [ Generaďż˝ ]

Liczba w systemie binarnym (podobnie jak każdym innym) jest zapisywana malejąco jeśli chodzi o rząd liczb (wykładniki potęg podstawy) - czytając od lewej do prawej. To znaczy: najpierw jest najwyższa potęga 2 (w tym przypadku 2^7) potem coraz niższe. Ostatnia cyfra przed przecinkiem to 2^0. Kolejna (pierwsza po przecinku) to 2^(-1) (czyli 1/2, czyli w dziesiętnym 0,5). Kolejna (druga po przecinku) to 2^(-2) (czyli 1/4 czyli w dziesiętnym 0,25) itd. NIE zapisujemy rozwinięcia po przecinku "dosłownie" (tak jakbyśmy zapisywali tą liczbę, gdyby nie była częścią ułamkową) dlatego żaden z zaproponowanych przez Ciebie zapisów nie jest poprawny.

08.02.2008
22:49
[10]

EartH [ Pretorianin ]

Hmm rozumiem w takim razie że 193.54 to 11000001.1000101 (7 liczb po przecinku w binarnym żeby dokładnośc była większa niż 0.01 w dziesiętnym). Przy zamianie z binarnego na dziesiętny (też będzie takie zadanie ;( ), kolejne liczby po przecinku rozumiem jako 0.5 + 0 + 0 + 0 + 0.03125 + 0 + 0.0078125...
Istnieje jakiś prostszy sposób na odwrotną zamianę?
Co z systemem ósemkowym i szesnastkowym? Mnożę w słupku odpowiednio przez 8 i 16?:P

Czy przy zamianie liczby 0.11100100 na system ósemkowy mogę pogrupować sobie liczby 0.*(0)11*100*100 lub 0.111*001*00(?) i zamieniać odpowiednio grupami?

Sorki za grad pytań ale czasu coraz mniej a noc coraz krótsza...

08.02.2008
23:00
[11]

QrKo_ [ ]

Generalnie do zamiany duzych liczb ktore maja rozwiniecie dziesetne na system binarny polecam schemat hornera, jednak bez kalkulatora ciezko to policzyc (za to nie trzeba oddzielnie liczyc calosci i ulamkow).

A robi sie to tak:
Bierzesz dana liczbe, np. 1984.0415, mnozysz ja razy 2 do potegi takiej ile chcesz miec miejsc po przecinku, dajmy na to 11, mnozysz i zaokraglasz.

1984.0415 * 2^11 = 4 063 316.992 ~ 4 063 317

Teraz wynik (4 063 317) dzielisz przez 2 za kreska zapisujac reszte z dzielenia (ktora w dwojkowym moze byc albo 0 albo 1) w sposob nastepujacy:
4 063 317 : 2 | 1
2 031 658 : 2 | 0
1 015 829 : 2 | 1
...
itd.

Reszty spisujesz od dolu i masz
1984.0415 = 1111100000000001010101
teraz stawiasz przecinek tyle miejsc od prawej do jakiej potegi podniosles 2 (czyli w tym wypadku 11) i masz, ze:
1984.0415 = 11111000000.00001010101

Koniec :)

Metoda naprawde duzo szybsza niz liczenie osobno calosci i osobno ulamkow, tylko ze bez kalkulatora sie nie obejdzie w wypadku duzych liczb.

Przyklad zaczerpniety z:


I tego wlasnie pdf-a polecam do nauki.

08.02.2008
23:07
[12]

EartH [ Pretorianin ]

Ale w tym słupku z dziesiętnego na ósemkowy - część ułamkową mnożę przez 8? (analogicznie w [16])?

08.02.2008
23:10
[13]

QrKo_ [ ]

Nie pamietam jak w slupku ale w hornerze tak, z tym ze w hornerze sie dzieli a nie mnozy. Zajrzyj do tego pdf-a tam wszystko jest, gdzies z poczatku jest przyklad zamiany liczby na system 7mkowy.

EDIT:
No, czyli zawsze mnozysz/dzielisz przez podstawe systemu :)

08.02.2008
23:10
[14]

DEXiu [ Generaďż˝ ]

EartH ==> Tak. Zawsze mnożysz przez podstawę systemu.
W sumie to oba sposoby podane przez QrKa_ są równoważne :) Z tym że pierwsze prostszy w użyciu i nie wymaga pomocy kalkulatora (de facto to drugi sposób jest jakby pierwszym wykonanym "w tę i z powrotem" ;)

08.02.2008
23:14
[15]

EartH [ Pretorianin ]

Okey to już rozumiem a wymnoży mi ktoś dwie liczby binarne algorytmem Bootha?:P hehe
Trzymajcie jutro kciuki;)

© 2000-2024 GRY-OnLine S.A.