Преобразование двоичных чисел в десятичные

      Комментарии к записи Преобразование двоичных чисел в десятичные отключены

Главная Форумы Программирование Архитектура ЭВМ и систем Преобразование двоичных чисел в десятичные

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 1 месяц назад.

  • Автор
    Сообщения
  • #4194

    Преобразование двоичных чисел в десятичные, казалось бы, в принципе ничем не отличаются от рассмотренного выше преобразования десятичных чисел в двоичные. Это преобразование можно было бы осуществить путем последовательного деления целой части двоичного числа и целой части частного на десять и выделения остатков, а также последовательного умножения дробной части числа и дробной части произведения на десять с выделением целой части. Однако не трудно заметить, что в примерах, рассмотренных в предыдущем параграфе, все арифметические действия в процессе преобразования выполнялись в системе счисления, в которой были записаны исходные числа, т.е. в десятичной. В цифровых машинах, в которых все арифметические действия выполняются непосредственно в двоичной системе счисления, описанный выше метод используется для преобразования двоичных чисел в десятичные, т.е. целая часть числа последовательно делится на десять, а дробная часть числа последовательно умножается на десять, причем число десять изображается четырехзначным двоичным числом 1010, умножение (или деление) выполняются непосредственно в двоичном коде, отдельные цифры преобразованного десятичного числа мы также получаем в виде их двоичных кодов.

    В случае, если преобразование двоичных чисел в десятичные мы выполняем на бумаге, нам удобнее воспользоваться другой методикой, позволяющей выполнять арифметические действия не в той системе счисления, в которой нам заданы исходные данные (т.е. в двоичной),а в системе счисления, в которой мы желаем получить преобразованное число (т.е. в десятичной).

    Для этого надо двоичное число

    $$A=a_{n}a_{n-1}…a_1a_0,a_{-1}a_{-2}…a_{-m}$$

    представить в виде

    $$A=a_{n}\cdot 2^{n}+a_{n-1}\cdot 2^{n-1}+…+a_{1}\cdot 2^{1}+a_{0}\cdot 2^{0}
    \\
    +a_{-1}\cdot 2^{-1}+a_{-2}\cdot 2^{-2}+…+a_{-m}\cdot 2^{-m}$$
    и непосредственно выполнить все указанные действия.

    Например, двоичное число 1011,01101 равно десятичному числу
    $$1\cdot 2^{3}+0\cdot 2^{2}+1\cdot 2^{1}+1\cdot 2^{0}+1\cdot 2^{-2}+1\cdot 2^{-3}+1\cdot 2^{-5}=8+2+1+\frac{1}{32}\left ( 8+4+1 \right )=11\frac{13}{32}$$

    Можно было бы разбить исходное число на группы по три разряда влево и вправо от запятой, преобразуя каждую группу в цифру восьмеричного кода, и после этого преобразовать восьмеричный код в десятичный.

    В нашем случае цифры двоичного числа, основание двоичной системы счисления и показатели при двойке мы записывали в десятичной системе счисления, все арифметические действия также выполнялись в десятичной системе счисления.

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

    (материал взят из книги Папернов А.А. Логические основы цифровых машин и программирования Текст. М.: Наука, 1968. 591с.)

Для ответа в этой теме необходимо авторизоваться.