Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Калькулятор длинных чисел для разных систем счисле


Автор: AlexP11223 17.10.2011, 20:26
Надо сделать программу для действий (+, -, *, /) над числами (до 80 знаков). С самими действиями особых проблем нет, в столбик массивы\строки и т.д. А вот как лучше реализовать это для разных систем счисления? (2-10 и 16)
т.е. ввели систему счисления, ввели 2 числа в этой системе, выбрали, что с ними надо сделать.

Автор: Akina 17.10.2011, 20:31
переводи в 16-ричку и считай, потом переводт обратно

Автор: AlexP11223 17.10.2011, 20:38
А почему именно в 16?

Автор: Pavia 17.10.2011, 21:11
Akina, Не в шест. надо переводить а в дополненный код.

Автор: Akina 17.10.2011, 22:14
Цитата(Omfgnoob123 @  17.10.2011,  21:38 Найти цитируемый пост)
А почему именно в 16? 

А почему нет? круглое число, удобно...

Pavia, смотря как он будет реализовывать длинную арифметику.

Автор: AlexP11223 17.10.2011, 23:13
Цитата

смотря как он будет реализовывать длинную арифметику.

А что за реализация  с доп. кодом?

Автор: maxim1000 18.10.2011, 08:19
ИМХО, лучше начать с того, что описать уже существующую функциональность

потом будет проще посоветовать простейший путь для добавления разных систем исчисления

Автор: Rigid 18.10.2011, 08:48
я переводил все в систему счисления с основанием 2^32 для 32 разрядной машины и в 2^64 для 64 разрадной.
Посчитал что так будет быстрее.

Автор: Korod 26.10.2011, 10:05
В 2-ной (16-ричной, вообще, кратной 2^a) системе работает сам комп, поэтому в ней и удобнее выполнять сами вычисления. Поэтому Akina это и посоветовал. А дальше приведу совет Чучмека:

"Число ABCD c основанием X  можно представить как D+C*X+B*X^2+A*X^3= ( (A*X+B)*X+C)*X+D  
Например для десятичной системы
78923=3+2*10+9*100+8*1000+7*10000=((((7*10)+8)*10+9)*10+2)*10+3"

Впрочем, все это составляет начальные понятие по позиционным системам счисления

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)