Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Перевод чисел из одной системы счисления в другую с использованием




Промежуточной двоично-десятичной системы

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

В двоично-десятичной системе счисления для изображения любой десятичной цифры от 0 до 9 отводится четыре двоичных разряда с весовыми коэффициентами 8-4-2-1, т.е. в двоично-десятичной системе десятичные цифры изображаются следующим образом:

0 = 0000; 1 = 0001; 2 = 0010; 3 = 0011; 4 = 0100;

5 = 0101; 6 = 0110; 7 = 0111; 8 = 1000; 9 = 1001.

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

Рассмотрим технологию преобразований на примере десятичного числа в двоичное.

Перепишем число с учетом весовых коэффициентов всех входящих в него десятичных цифр:

.

 

Заменим каждую цифру целой и дробной части числа ее изображением в двоично-десятичной системе:

Целая часть Дробная часть

7 = 0111 3 = 0011

3 = 0011 7 = 0111

4 = 0100 5 = 0101

Запишем в двоичной системе значение весовых коэффициентов для целой и дробной части числа :

Целая часть Дробная часть

(102)(10) = 1100100(2) (10-1)(10) = 0,0001100110(2)

(101)(10) = 1010(2) (10-2)(10) = 0,0000010100(2)

(100)(10) = 1(2) (10-3)(10) = 0,0000000001(2)

 

Теперь нетрудно найти двоичное представление целой и дробной части числа .

Целая часть числа в двоичной системе определяется следующим образом:

 

(0111) ∙ (1100100) + (0011) ∙ (1010) + (0100) ∙ (1) = 1011011110(2),

 

т.е. после выполнения соответствующих операций в двоичной системе имеем 734(10) = 1011011110(2).

Дробная часть числа в двоичной системе определяется следующим образом:

(0011) ∙ (0,0001100110) + (0111) ∙ (0,0000010100) +

 

+ (0101) ∙ (0,0000000001) = 0,0101111001(2),

 

т.е. после выполнения соответствующих двоичных операций имеем 0,375(10) = 0,0101111001(2).

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

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

Для организации перевода -разрядного двоичного числа в двоично-десятичное требуется циклов, каждый из которых состоит из двух шагов:

1) сдвинуть двоичное число на один разряд из двоичного регистра в двоично-десятичный;

2) каждую десятичную цифру в двоично-десятичном регистре, превышающую 4, увеличить на три.

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

 

Номер Содержание регистров сдвига
Цикла Десятичные разряды Двоичные разряды
И d2 d1 d0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0
Шага 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0
I 1     0 0 0 1 0 1 1 0 1 1 1 1 0
II 1     1 0 1 1 0 1 1 1 1 0
III 1     1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0   1 0 1 1 1 1 0
IV 1     0 0 0 1 0 1 1 1 1 0
V 1   1 0 0 0 1 0 1 1 1 1 0
VI 1   1 0 0   1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0   1 1 1 0
VII 1   1 0 0 1 1 1 1 1 0 0 0 0 0 1   0 0 0 1 1 1 0   1 1 0
VIII 1     1 0 0 0 1 1 1 0 1 1 0 0 1 1   0 0 1 1 1 0   1 0
IX 1 1 1   1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0  
X 1 1 1 1 0 0 1 1 0 1 0 0  
        Результат в десятичной системе счисления

 

Читателям предлагается самостоятельно произвести перевод полученной выше правильной дроби 0,0101111001 в десятичную систему, применяя изложенный способ с использованием промежуточной двоично-десятичной системы, и дать оценку погрешности перевода.

Известен еще один способ перевода целых чисел и правильных дробей из одной системы счисления в другую, основанный на следующих процедурах.

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

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

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

Рассмотрим этот способ на двух примерах.

 

Пример.

Перевести целое число 10110110(2) из двоичной системы в десятичную систему счисления, т.е. а .

Последовательность

операций

Старший разряд 1 1 х 2 = 2

0 (2+0) х 2 = 4

1 (4+1) х 2 = 10

1 (10+1) х 2 =22

0 (22+0) х 2 = 44

1 (44+1) х 2 = 90

1 (90+1) х 2 = 182

Младший разряд 0 (182+0) = 182

 

 

Результатперевода: 10110110(2)=182(10).

 

Пример.

Перевестиправильную дробь 0,1011(2) из двоичной системы счисления в десятичную.

 

Последовательность

операций

Младший разряд 1 1: 2 = 0,5

1 (0,5+1): 2 =0,75

0 (0,75+0): 2 = 0,375

Старший разряд 1 (0,375+1): 2=0,685

 

Результат перевода: 0,1011(2)=0,685(10).

 





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 1933 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2265 - | 2038 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.