Как переводить дробные числа с двоичной системы в 10 в с++?

Нужно написать код перевода дробных чисел с 2 на 10
  • Вопрос задан
  • 3883 просмотра
Пригласить эксперта
Ответы на вопрос 3
Mrrl
@Mrrl
Заводчик кардиганов
Можно сделать так. Завести две переменные: double x=0, y=0.
Читать строку слева направо. Если пришла цифра b=='0' или '1', то выполнить x=2*x+b-'0'; y*=2;
Если пришла запятая - присвоить y=1. В конце, если y ненулевой, то поделить x на y.
Например,
для строки 101 : x=5, y=0. Ответ 5.
101,101 : x=45, y=8. Ответ 45/8=5.625
101, : x=5, y=1. Ответ 5.
,101 : x=5, y=8. Ответ 5/8=0.625.
Ответ написан
AnnTHony
@AnnTHony
Интроверт
Числа с плавающей запятой/точкой тогда уж.
Вот вам стандарт IEEE 754 если совсем забанили в гугле.
Переведете в двоичную, а там вертите как душе угодно, хоть в hex, хоть в восьмиричную с троичной.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
Берете отдельно биты, в которых хранится дробная часть, отдельно целая часть. Переводите в десятичное, складываете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы