Что значит не получить 0,71? Вам, IAZ дал ссылку, где понятно расписано, что и куда. Перевод в двоичную систему дробей отличается от аналогичного перевода целых чисел.
На вашем примере 245,71:
-
Переводим 245 - это мы умеем.
-
Теперь по алгоритму (в скобках - разряд двоичного числа):
0.71x2 = 1,42 (1) [0.5]
0.42x2 = 0.84 (0) [0.25]
0.84x2 = 1.68 (1) [0.125]
0.68x2 = 1.36 (1) [0.0625]
0.36x2 = 0.72 (0) [0.03125]
0.72x2 = 1.44 (1) [0.015625]
0.44x2 = 0.88 (0) [0.0078125]
0.88x2 = 1.76 (1) [0.00390625]
0.76x2 = 1.52 (1) [0.001953125]
0.52x2 = 1.04 (1) [0.0009765625]
Считаем: 1x0.5 + 0x0.25 + 1x0.125 + 1x0.0625 + 0x0.03125 + 1x0.015625 + 0x0.0078125 + 1x0.00390625 + 1x0.001953125 + 1x0.0009765625 = 0,7099609375
(дальнейшие вычисления зависят от необходимой точности). Вот ваше число в двоичной системе 11110101.1011010111
.
Скажите, а что действительно в этом выражении "0x2^-3 + 0x2^-2 + 0x2^-1"
получается 0,625? Как по мне так там, эта, типа ноль. Вы видимо единицу во втором разряде потеряли. Но даже в таком случае 0,625 как-то не выходит. В общем, что-то вы намудрили или я чего-то не понимаю.