Дед Мазай
Гений
(58129)
4 года назад
Принцип тот же самый, как в сложении столбиком в десятичной системе. Отличие разных систем счисления только в том, какая цифра является максимальной.
Например, если мы сложили цифры 5 и 4, то в десятичной системе не будет переноса, поскольку 9 < 10. При сложении этих же чисел в восьмеричной системе будет перенос единицы в следующий разряд, поскольку неверно, что 9 < 8. В восьмеричной системе получается 11. Младший разряд вычисляется так: 9 - 8.
КотЗнаток (451)
4 года назад
я это понимаю, но не могу корректно реализовать сдвиг разряда
An1Byte
Мудрец
(10871)
4 года назад
Берешь 2 массива и фигачишь... каждая ячейка массива это своего рода разряд числа... например начни с простых чисел... к примеру 100 и 20. получаем 2 массива с 4мя элементами каждый (для чисел не бельших 4 разрядов чисто для удобства объяснений). получается первый массив (0 1 0 и 0) и второй 0 0 2 и 0... Кстати в массиве их удобнее будет представлять в зеркальном виде... то есть так 0 0 1 0 и 0 2 0 0. Главное иметь ввиду что занимаешь ты или переносишь ты теперь не влево а вправо.... Получаем что бы сложить число или что то еще то вспоминаем алгоритм вычисления в столбик.
0010
0200
0210 // Отзеркалив массив получаем 0120 =>120
Точно также с вычитанием. Точно также с любыми СС, главное следить тем чтобы разряды переносились корректно взависимости от размера системы счисления. Деление и умножение посложнее, так как алгоритм математического вычисления сложнее но в точности делаешь аналог столбика