Сайт "Электронщики" - скорая помощь для радиолюбителей. Здесь вы можете задавать вопросы и получать на них ответы от других пользователей.
Грамотно отвечайте, голосуйте, задавайте вопросы и т.о. зарабатывайте себе рейтинг.

Перевод двоичного кода в dec или hex

+4 голосов
Есть ли спопсобы перевода оптимальней чем последовательное вычитание (1000, 100 и т.д.) Подскажите, пожалуйста, ссылочку где это объясняется
22 Май, 14 от Ruan (4,650 баллов) в категории Микроконтроллеры
Что является критерием оптимальности в данном случае?
Сравниваешь получ число с 10000 если больше то вычитаешь из него 10000 и плюсик в регистр. Далее сравниваешь с 1000 и так далее до 10 ну и остаток в младший разряд.  В твоем случае первое сравнение нужно делать с 10 000 000 .Перевод для 6 разрядов занимает меньше 1 мс для мега 168. Не вижу смысла искать другие алгоритмы. Есть рабочий пример для algoritmBuilder только он сюда не копируется.

2 Ответы

+3 голосов
Вот например если я делаю счетчик с диапозоном до 20 Мгц и получу значение к примеру 15 156 765 Гц . Как мне это число перевести в десятичный вид, чтобы вывести его на экран потом?
22 Май, 14 от аноним
+3 голосов

Существуют программы,конвертирующие данные из dec в hex и обратно,например

http://lin.in.ua/tools/numconv.html

http://speed-tester.info/soft_converter_bin_dec_hex.php

http://radiokot.ru/circuit/digital/measure/11/

 

22 Май, 14 от Profus (461,670 баллов)
редактировать 22 Май, 14 от Profus
Да это понятно, калькуляторы они у меня и так установлены. Постараюсь конкретней сформулировать. Например 16 разрядный счетчик отсчитывает кол-во импульсов. Он был 3 переполнен. В результате я имею значение три в регистре count и значение в регистре счетчика/таймера. Мне нужно это дело все вывести на дисплей ЖК. Соответственно мне нужно сперва перевести это число в десятичный вид. Вот как это сделать?
Посмотрите ,как это делается,в ссылке три.