Другие языки программирования и технологии

перевод дроби из дсятичной системы

Здравствуйте! Столкнулся с проблемой. я знаю как переводить обычные числа другие системы. но возникла необходимость перевести числа 597,25, 300,375, 75,57 в двоичную, восьмиричную и шестндцатеричную систему! кто бы помог!
Переводим 597,25 (10) —> (2) :

597 / 2 = 298 (остаток 1)
298 / 2 = 149 ( 0 )
149 / 2 = 74 ( 1 )
74 / 2 = 37 ( 0 )
37 / 2 = 18 ( 1 )
18 / 2 = 9 ( 0 )
9 / 2 = 4 ( 1 )
4 / 2 = 2 ( 0 )
2 / 2 = 1 ( 0 )
1 / 2 = 0 ( 1 )

Выписываем в обратном порядке полученные остатки от деления:

1001010101 — это целая часть.

Теперь дробная:

,25 * 2 = (0),5
,5 * 2 = (1)

Выписываем в прямом порядке целое от умножения:

01 — это дробная часть

Всё число будет 597,25 (10) —> 1001010101,01 (2)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

При переводе дробных частей, иногда нужно знать когда остановиться:

,57 * 2 = (1),14
,14 * 2 = (0),28
,28 * 2 = (0),56
,56 * 2 = (1),12
,12 * 2 = (0),24
,24 * 2 = (0),48
,48 * 2 = (0),96
,96 * 2 = (1),92
,92 * 2 = (1),84
… вот так можно продолжать ведь и до бесконечности ;-)
Сергей Иванюк
Сергей Иванюк
68 460
Лучший ответ
Александр Степнов Jurii, спасибо за развернутый ответ! а с восьмиричной и шестнадцатеричной системами так же?
целую часть числа нужно делить на число равное основание желаемой системы счисления до конца удобней в столбик и снизу вверх записываем результат. А дробную нужно умножать.