Собственно вопрос родился в процессе реализации длинной арифметики. Нужно было сделать умножение чисел 10^100. В этот раз решил не заморачиваться корявым десятичным делением и реализовал тип на Boolean. Код получился проще и короче. Но сколько бы я не думал, додуматься о том, как вывести результат умножения на экран, мысли просто крашились.
По анологии и возник вопрос: вот например qword имеет 64 бита, и как этот тип быстро переводиться в десятичное отображение?
Другие языки программирования и технологии
Как В КОМПЬЮТЕРЕ (не человеком) осуществляется переход из хранения двоичных цифр в отображение десятичных?
В компьютере это делается программно. И вешаться не надо, компьютеру миллион действий - семечки, миллисекунда.
Пример на Ассемблере
www.manhunter.ru/assembler/21_vivod_qword_v_vide_desyatichnogo_chisla.html
Пример на Ассемблере
www.manhunter.ru/assembler/21_vivod_qword_v_vide_desyatichnogo_chisla.html
Задачка уровня первого курса прикладной математики. Хотя.. . там была задача проще, посчитать факториал (70!). Но всё равно, на двоичные коды раскладывать совсем не нужно. А можете на Java написать, там есть типы неограниченные по размеру. "Всё уже украдено до нас".
Программирование - способность объяснить компьютеру чем он может вам помочь, что сделать за вас, как вас заменить.
Программирование - способность объяснить компьютеру чем он может вам помочь, что сделать за вас, как вас заменить.
Есть ещё такая экзотическая система счисления, как двоично-десятичная.
Процессоры семейства x86 имеют инструкции (команды) для преобразования двоичных чисел в такой формат и обратно.
Нужно 4 бита под цифру, грубо говоря, каждый байт - 2 десятичных цифры. Это если паковать, а можно под одну десятичную цифру весь байт зарезервировать. Кстати, у вас сейчас под 1 бит числа используется не менее 1 байта.
Если хранить в таком формате, то просто вводить с клавиатуры и выводить на экран, зато неприятно складывать и умножать.
А как переводится двоичный код в символы: последовательным делением на 10, выводя в строку остатки от деления в виде десятичных символов.
Процессоры семейства x86 имеют инструкции (команды) для преобразования двоичных чисел в такой формат и обратно.
Нужно 4 бита под цифру, грубо говоря, каждый байт - 2 десятичных цифры. Это если паковать, а можно под одну десятичную цифру весь байт зарезервировать. Кстати, у вас сейчас под 1 бит числа используется не менее 1 байта.
Если хранить в таком формате, то просто вводить с клавиатуры и выводить на экран, зато неприятно складывать и умножать.
А как переводится двоичный код в символы: последовательным делением на 10, выводя в строку остатки от деления в виде десятичных символов.
У меня было задание - написать программу умножения целых чисел с произвольной длиной. Входные данные задавались в текстовом файлике :) Я, не мудрствуя лукаво, просто обрабатывал соответствующие разряды чисел начиная с последних (если числа были разной длины - они дополнялись нулями) - со всеми "1 на ум пошло" и прочим) ) Программа получилась небольшой и довольно быстрой.
Похожие вопросы
- Двоичное число. Может кто знает, а? Двоичному числу 101101 соответствует десятичное число ...Заранее огромное спасибо!
- Помогите перевести двоичное число 1110101 в десятичную систему счисления. Очень нужно
- Напомните, как переводить двоичное число в десятичное?
- Двоично-десятичная система
- Число 10 (в десятичной системе счисления) в двоичной системе счисления имеет вид???
- Переведите число 111 из десятичной системы счисления в двоичную систему счисления.
- двоично-десятичная система счисления
- Перевод из десятичной в двоичную систему счисления.
- Для чего нужна конвертация из десятичной системы в двоичную?
- Подскажите, как перевести из двоичной в десятичную число 101110,11101
Это просто превратилось в дело принципа. Решение же очевидно простое а я не могу допереть )=