Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Калькулятор длинных чисел для разных систем счисле |
Автор: 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 |
А почему нет? круглое число, удобно... 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" Впрочем, все это составляет начальные понятие по позиционным системам счисления |