Pytanie jak zamienić liczbę 19,625 na liczbę binarną?
Wiem jak zamienić 19, wiem jak zamienić też samo 0,625. A nie mam przykładu dla 19,25 lub innej liczby podobnej. Jak to się liczy poprawnie?
Pytanie zbyt ogólne... Zależy od tego w jaki sposób chcesz zakodować wynik - nie ma jednego sposobu reprezentowania liczb niecałkowitych (całkowitych w sumie też nie). W szczególności mogą cię zainteresować liczby stałoprzecinkowe (fixed point) - wtedy wybierasz sobie stałą ilość bitów na część całkowitą i ułamkową i zapisujesz w postaci [bity całkowite][bity ułamkowe] Gdzie obydwie części zawsze mają taką samą długość - albo floating point - wtedy wyliczasz używasz gotowego konwertera (np. http://babbage.cs.qc.edu/IEEE-754/Decimal.html) z wynikiem 010000011100111010000000000000000.
A jeśli potrzebujesz tego do szkoły bo nauczyciel wymaga to pewnie chodzi mu o zapis w rodzaju 1101,101 czyli z użyciem przecinka.
0.625
* 2
---
1.25 | 1
0.25
*2
---
0.5 | 0
0.5
*2
---
1.0 | 1
0.625 (DEC) = 0.101 (BIN)
0.101 (BIN) = 1* 2^(-1) + 0* 2^(-2) + 1* 2^(-3) = 1*0.5 + 0*0.25 + 1*0.125 = 0.625 (DEC)
może wyjść Ci wynik jako ułamek okresowy i da się łatwo sprawdzić jaki będzie okres. pozostawiam do samodzielnej kombinacji :)