2008-11-27 10 views
1

Я работаю над калькулятором, который позволяет выполнять вычисления после десятичной точки в восьмеричной, шестнадцатеричной, двоичной и, конечно, десятичной. У меня возникли проблемы, хотя я нашел способ конвертировать десятичные числа с плавающей запятой в шестнадцатеричные, восьмеричные, двоичные и шестнадцатеричные числа с плавающей запятой и наоборот.с плавающей точкой hex восьмеричный двоичный код

План состоит в том, чтобы выполнить всю математику в десятичной системе, а затем преобразовать результат в соответствующую систему чисел. Любая помощь, идеи или примеры будут оценены.

Спасибо!

ответ

2

Хм ... это было задание на домашнее задание в мой курс CS «отколовшийся».

Операции для двоичных файлов описаны в статье Серия «Шаум»: основные компьютерные математики от Seymour Lipschutz. По какой-то причине он по-прежнему находится на моей книжной полке через 23 года.

Как подсказка, конвертировать восьмеричные и шестнадцатеричные в двоичные, выполнять операции, преобразовывать обратно в двоичные.

Или вы можете выполнять десятичные операции и выполнять преобразования в восьмеричные/шестнадцатеричные/двоичные. Процесс, по существу, одинаковый для всех арифметических систем позиционных номеров.

1

Какой язык программирования вы используете? - это определенно хорошая идея изменить все на двоичную, сделать математику на двоичной, а затем конвертировать назад. если вы умножаете двоичное число (unsigneD) на 2, ti такое же, как бит Shift Left (< < 1 in C), деление на 2 такое же, как бит-дерьмо вправо (>> в C). сложение и вычитание - это то же самое, что и в начальной школе.

также помните, что если вы создадите float как int, он усечет его int (10.5) = 10;

0

У меня была эта же проблема несколько дней назад. Я нашел http://www.binaryconvert.com, что позволяет конвертировать между десятичными, двоичными, восьмеричными и шестнадцатеричными числами с плавающей запятой в любом порядке.