Двоично-Десятичный Код Перевод

On

Перевод двоичного числа в двоично. Перевод двоичного числа в двоично-десятичный вид. Программа переводит двоичное число, содержащееся в аккумуляторе, в BCD-код. При таком преобразовании может получиться трёхразрядное BCD-число. Старшая цифра (чи.

  1. Двоично-десятичный Код Перевод Онлайн

После калькулятора я думал, что тема с системами счисления уже закрыта. Но, как оказалось, еще нет. Как я писал по ссылке выше, основная проблема при переводе дробных чисел из одной системы счисления в другую это потеря точности, когда, например, десятичное число 0.8 нельзя перевести в двоичное без погрешности. Поскольку десятичные числа активно используются человеком, а двоичные — компьютером, этой проблемой в применении к двоичной и десятичной системам однажды уже озаботились какие-то светлые умы и придумали двоично-десятичное кодирование (binary coded decimal, BCD). Суть идеи проста — берем и для каждой десятичной цифры заводим байт. И в этом байте тупо пишем значение десятичной цифры в двоичном коде. Тогда число, например, 0.8 будет 0.00001000.

Столкнулся с такой проблемой, необходимо перевести эти числа 29 и 15 в 8121+3 код.

Потом, правда, подумали еще, и решили, что раз уж верхняя часть байта всегда пустует (так как максимум 9 — это 1001), то давайте для каждой десятичной цифры заводить полубайт. И назвали это упакованным двоично-десятичным кодированием (packed BCD). В упакованном кодировании наше 0.8 будет 0.1000, а какое-нибудь 6.75 будет 011. Прекрасная идея, конечно.

Двоично-десятичный Код Перевод Онлайн

Точность не теряется, человек может двоичные числа переводить в десятичные и наоборот прямо на лету, округлять можно, откидывая лишнее. Но как-то не получила она широкого распространения, потому как жизнь машинам она, наоборот, усложняла — и памяти для хранения чисел надо больше, и операции над числами реализовать сложнее. Так и осталась забавным курьезом, и я бы ничего о ней не знал, если бы пользователи не подсказали, что есть такая. Ну и небольшой калькулятор по этому поводу — вводим либо десятичное число, либо двоичное, подразумевая, что это упакованный двоично-десятичный код, и получаем результат.

Понятно, что все преобразования можно проделать и в уме, и в этом ее преимущество; но зачем же лишний раз мозги напрягать, верно?

В вычислительной технике существует задача преобразования двоичного числа в двоично-десятичное. Чаще всего — для последующего вывода на индикацию. В международных терминах это преобразование обозначается как BIDEC. Существует довольно много алгоритмов преобразования BIDEC. Расмотрим три самых распространенных из них. Обычно называется «плюс 3 и сдвиг». Этот алгоритм основан на двоичном сдвиговом регистре для исходного числа и двоично-десятичных сдвиговых регистрах для результата.

При работе алгоритма биты из двоичного регистра, начиная со старшего разряда, по одному вдвигаются в двоично-десятичный регистр, начиная с младшего разряда. В терминах программного обеспечения, в двоичном регистре производится операция «СДВИГ ВЛЕВО ЧЕРЕЗ ПЕРЕНОС», а в двоично-десятичных регистрах,- та же операция, но для каждой декады, начиная с младшей. Далее анализируется каждая двоично-десятичная декада и если ее значение превышает 4, то к этой декаде прибавляется число 3. После «выдвигания» последнего бита в двоично-десятичном регистре получается десятичный эквивалент двоичного числа. Данный алгоритм чаще всего реализовывался аппаратно, еще в ту пору, когда не существовало микропроцессоров и персональных компьютеров. И в настоящее время этот алгоритм довольно широко используется в его программной интерпретации в самых разных устройствах с выводом результатов на индикацию,- вольтметрах, термометрах, частотомерах, часах.

Особенно это характерно для устройств на базе микроконтроллеров в исполнении радиолюбителей. Блок-схема Алгоритма «плюс 3 и сдвиг» Алгоритм «Плюс 3 и сдвиг».

Например: для преобразования данных с АЦП 10 бит. Другой алгоритм BIDEC похож на «деление в столбик» и по сути представляет собой разложение двоичного числа на десятичные множители.

Например, исходное двоичное число 65535 будет представлено в виде пяти десятичных тетрад как 6х10000 + 5х1000 + 5х100 + 3х10 + 5 х1. Данный алгоритм гораздо более привычен и, соответственно, более понятен, чем «плюс 3 и сдвиг».

ПереводДвоично-Десятичный Код Перевод

А для реализации этого алгоритма надо всего лишь находить максимальный множитель для каждой декады, начиная со старшей ( как и при «делении в столбик»). Алгоритм «деление в столбик». Например: для преобразования данных с АЦП 10 бит. Есть и другие алгоритмы BIDEC. Среди них наиболее заметен «метод обратного счета», основанный на синхронном вычитании единицы из двоичного счетчика и прибавлении единицы к двоично-десятичному. Этот алгоритм предельно прост и понятен, особенно специалистам по аппаратной части.

Однако, и при аппаратной и при программной реализации скорость работы у него — самая худшая из всех возможных алгоритмов. Хотя, безусловно, в случаях, некритичных к быстродействию, этот алгоритм наиболее компактен, прост и дешев как при аппаратной, так и при программной реализации. Алгоритм «метод обратного счета». Например: для преобразования данных с АЦП 10 бит. А теперь интересно будет сравнить скорость работы алгоритмов. Поскольку, алгоритм 3, Алгоритм обратного счета — самый медленный, остается сравнить алгоритмы 1 и 2.

Если в качестве примера взять двоичное число, состоящее из 16 бит, то после преобразования получим 5 разрядов десятичного числа.