Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции РАЗДЕЛ 2.docx
Скачиваний:
65
Добавлен:
18.11.2019
Размер:
3.01 Mб
Скачать

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

Перевод чисел, как целых, так и дробных, составляет важную часть ма­шинной арифметики. Наиболее просто выполняются переводы между ос­нованиями, составляющими степень двойки.

2.4.1. Перевод между основаниями, составляющими степень двойки

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

1234,7778 = 001 010 011 100, 111 111 1112 = 1 010 011 100, 111 111 1112;

12345678 = 001 010 011 100 101 110 1112 = 1 010 011 100 101 110 1112;

123456,0078 = 001 010 011 100 101 110,000 000 1112 =

= 1 010 011 100 101 110, 000 000 1112.

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

11001112 = 001 100 1112 = 1478;

11,10012 = 011, 100 1002 = 3,448;

110,01112 = 110, 011 1002 = 6,348.

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

1234,АВ7716 = 0001 0010 0011 0100,1010 1011 0111 01112 =

= 1 0010 0011 0100,1010 1011 0111 01112;

СE456716= 1100 1110 0100 0101 0110 01112;

0,1234АА16 = 0,0001 0010 0011 0100 1010 10102;

11001112 = 0110 01112 = 6716;

110,01110012 = 0110, 0111 00102 = 6,7216.

При переходе из восьмеричного счисления в шестнадцатеричное счисление и обратно используется вспомогательный, двоичный код числа, Например:

12345678 = 001 010 011 100 101 110 1112 = 0101 0011 1001 0111 01112 = =5397716;

0,120348 = 0,001 010 000 011 1002 = 0,0010 1000 0011 10002 = 0,283816;

120,348 = 001 010 000, 011 1002 = 0101 0000,0111 00002 = 50,716;

1234,АВ7716 = 0001 0010 0011 0100, 1010 1011 0111 01112 =

= 001 001 000 110 100,101 010 110 111 011 1002 = 11064,5267348;

СЕ456716 = 1100 1110 0100 0101 0110 01112 =

= 110 011 100 100 010 101 100 1112 =634425478;

0,1234АА16 = 0, 0001 0010 0011 0100 1010 10102 =

= 0,000 100 100 011 010 010 101 0102= 0,044322528.

2.4.2. Перевод целого числа из десятичного счисления в другое

Для того чтобы перевести десятичное число в систему счисления с основанием n надо:

1. Последовательно делить заданное число и получаемые целые части на новое основание счисления до тех пор, пока целая часть не станет меньше нового основания счисления.

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

Перевод в двоичную систему счисления:

147

2

-146

73

2

1

-72

36

2

1

-36

18

2

0

-18

9

2

0

-8

4

2

1

-4

2

2

0

-2

1

А2 = 100100112

0

Перевод в восьмеричную систему счисления:

147

8

-144

18

8

3

-16

2

2

А8 = 2238

Перевод в шестнадцатеричную систему счисления:

147

16

-144

9

3

А16 = 9316