C#

Программа для сложения, вычитания, умножения и деления чисел в двоичной, восьмеричной, шестнадцатеричной системах

Помогите написать программу для сложения, вычитания, умножения и деления чисел в двоичной, восьмеричной, шестнадцатеричной системах. Необязательно все системы счисления, но хотя бы все операции в одной системе, чтобы я мог понять принцип. И нужно написать именно алгоритм действий, без перевода в другие системы. Желательно на С#
Одил Бой
Одил Бой
451
Принцип тот же самый, как в сложении столбиком в десятичной системе. Отличие разных систем счисления только в том, какая цифра является максимальной.
Например, если мы сложили цифры 5 и 4, то в десятичной системе не будет переноса, поскольку 9 < 10. При сложении этих же чисел в восьмеричной системе будет перенос единицы в следующий разряд, поскольку неверно, что 9 < 8. В восьмеричной системе получается 11. Младший разряд вычисляется так: 9 - 8.
Александр Юрасов
Александр Юрасов
58 065
Лучший ответ
Одил Бой я это понимаю, но не могу корректно реализовать сдвиг разряда
Калькулятор Windows может это делать, переключи в режим "программист".
Афоня *
Афоня *
93 507
Берешь 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
Точно также с вычитанием. Точно также с любыми СС, главное следить тем чтобы разряды переносились корректно взависимости от размера системы счисления. Деление и умножение посложнее, так как алгоритм математического вычисления сложнее но в точности делаешь аналог столбика
Одил Бой спасибо за Ваш ответ. Завтра попробую