П.3. Перевод чисел из одной с.с. в другую

Системы счисления, применяемые в цифровых ЭВМ

В ЭВМ используются следующие системы счисления:

1. Двоичная система счисления - в качестве рабочей;

2. Десятичная система счисления - для записи исходной информации и выдачи результатов;

3. Восьмеричная система счисления;

4. Шестнадцатиричная система счисления;

5. Смешанная (двоично-десятичная) система счисления.

Восьмеричная и шестнадцатиричная системы счисления являются вспомогательными. Они применяются при подготовке задач к решению (программировании на языках ассемблере, машинном и др.). Данные системы удобны тем, что 8-ричная запись какого-либо числа в три раза короче его двоичной записи, а 16-ричная запись - в четыре раза. Что касается перевода чисел из одной системы в другую, а именно по схемам 8®2, 2®8, 16®2, 2®16, то он не вызывает каких-либо затруднений и может выполняться чисто механическим путем.

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

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

3 7 9 5, 2 8

0011 0111 1001 0101, 0010 1000

Т.о., десятичное число 3795,28 будет иметь такую двоично-десятичную запись: 0011011110010101,00101000.

Переход от десятичной к двоично-десятичной записи производится, как видим, элементарно и не требует каких-либо вычислений.

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

Пусть, например, дано двоично-десятичное число: 010110000110,00110111

Разобьем его на тетрады и заменим каждую тетраду десятичной цифрой:

0101 1000 0110, 0011 0111 = 586,37.

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

Примеры:

1)

2) 17710®N8. 177| 8__ 176 22 | 8__ 1 16 2 ® Старшая цифра 6 результата 17710=2618.
Найти двоичную запись числа 30
(3010®N2).

30| 2­­___

30 15 | 2___

0 14 7 | 2___

1 6 3 | 2___

1 2 1 ® Старшая циф-

1 ра результата

30=11102

 
 


3) 2810®N16.

28 | 16_

16 1

12

Поскольку десятичное число 12 в 16-ричной системе счисления обозначается цифрой (буквой) С, получим: 2810=1С16.

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

Примеры.

1)

4) 0,17®N16 0,17 16 2,72 16 11,52 16 8,32 16 5,12 ¼ 0,1710=0,2B85... 16.
3) 0,29®N2. 0,29 2 0,58 2 1,16 2 0,32 2 0,64 ¼ 0,2910=0,0100... 2.
0,312510®N2. 2)0,4310®N8.

0,43 8 3,44 8 3,52 8 4,16 8 1,28 ¼ 0,4310=0,3341... 8.
´
0,3125

2

0,6250

2

1,2500

2

0,5000

2

1,0000

0,312510=0,01012.

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

0,15=0,00100110011001...2=0,00(1001) 2.

В скобках указан период двоичной дроби.

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

0,41 8 3,28 8 2,24 8 1,92 8 7,68 ¼
Пример: 37,4110®N8.

37 | 8__

32 4

5

37=458.

0,41=0,3217...8.

37,4110=45,3217... 8.

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

1) Дано двоичное число 1011012. Получить его десятичную запись (1011012®N10).

1011012=1·25+0·24+1·23+1·22+0·21+1·20=32+0+8+4+0+1=45.

1011012=4510.

2) 1DA916®N10.

1DA916=1·163+13·162+10·161+9·160=4096+3328+160+9=7593

1DA916=759310.

Если основание p-ичной системы счисления является степенью основания q-ичной системы, т.е. p=qk (k - целое число), то перевод числа из p-ичной системы счисления в q-ичную систему счисления и, наоборот можно выполнить по более простым правилам: переводу каждой цифры в отдельности.

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

Примеры: 1) 358=011 1012 2) 741,58=111 100 001, 1012
0 - 0002 4 - 1002

1 - 0012 5 - 1012

2 - 0102 6 - 1102

3 - 0112 7 - 1112

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

1) 1011102=101 1002=568.

2) 11101110,00011112=011 101 110, 000 111 1002=356,0748

Перевод чисел из шестнадцатиричной системы счисления в двоичную и обратно. Т.к. 16=24, то для перевода 16-ричного числа в 2-ичную с.с. достаточно каждую 16-ричную цифру заменить соответствующей ей двоичной тетрадой. Приведем эти тетрады:

Примеры: 1) 27E16=0010 0111 11102=0010011111102. 2) 4D,0F16=01001101,000011112.
0 - 0000 8 - 1000

1 - 0001 9 - 1001

2 - 0010 A - 1010

3 - 0011 B - 1011

4 - 0100 C - 1100

5 - 0101 D - 1101

6 - 0110 E - 1110

7 - 0111 F - 1111

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

1) 1011102 = 0010 11102 = 2E16. 2) 10111,1012 = 00010111,10102 = 17,A16.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: