Другие языки программирования и технологии

Как В КОМПЬЮТЕРЕ (не человеком) осуществляется переход из хранения двоичных цифр в отображение десятичных?

Собственно вопрос родился в процессе реализации длинной арифметики. Нужно было сделать умножение чисел 10^100. В этот раз решил не заморачиваться корявым десятичным делением и реализовал тип на Boolean. Код получился проще и короче. Но сколько бы я не думал, додуматься о том, как вывести результат умножения на экран, мысли просто крашились.
По анологии и возник вопрос: вот например qword имеет 64 бита, и как этот тип быстро переводиться в десятичное отображение?
В компьютере это делается программно. И вешаться не надо, компьютеру миллион действий - семечки, миллисекунда.
Пример на Ассемблере
www.manhunter.ru/assembler/21_vivod_qword_v_vide_desyatichnogo_chisla.html
Максим Соколов
Максим Соколов
86 084
Лучший ответ
Задачка уровня первого курса прикладной математики. Хотя.. . там была задача проще, посчитать факториал (70!). Но всё равно, на двоичные коды раскладывать совсем не нужно. А можете на Java написать, там есть типы неограниченные по размеру. "Всё уже украдено до нас".

Программирование - способность объяснить компьютеру чем он может вам помочь, что сделать за вас, как вас заменить.
Александр Ладнер Задача то простая, у меня даже где-то валяется распечатанный листок с 100!. Задачу я уже всё-равно переделал стандартным методом, но мой пытливый ум напомнил об этом пародоксе уже спустя несколько месяцев и с течением времени он переодически взрывается и взрывается и беситься, от того, что на экране весят десятки чисел, которые еще 0,000001 секунды назад были двоичными.
Это просто превратилось в дело принципа. Решение же очевидно простое а я не могу допереть )=
Есть ещё такая экзотическая система счисления, как двоично-десятичная.
Процессоры семейства x86 имеют инструкции (команды) для преобразования двоичных чисел в такой формат и обратно.

Нужно 4 бита под цифру, грубо говоря, каждый байт - 2 десятичных цифры. Это если паковать, а можно под одну десятичную цифру весь байт зарезервировать. Кстати, у вас сейчас под 1 бит числа используется не менее 1 байта.
Если хранить в таком формате, то просто вводить с клавиатуры и выводить на экран, зато неприятно складывать и умножать.

А как переводится двоичный код в символы: последовательным делением на 10, выводя в строку остатки от деления в виде десятичных символов.
У меня было задание - написать программу умножения целых чисел с произвольной длиной. Входные данные задавались в текстовом файлике :) Я, не мудрствуя лукаво, просто обрабатывал соответствующие разряды чисел начиная с последних (если числа были разной длины - они дополнялись нулями) - со всеми "1 на ум пошло" и прочим) ) Программа получилась небольшой и довольно быстрой.
Максим Анцен
Максим Анцен
1 059