Из одной системы счисления в другую

Понятие системы счисления (СС) связано и определяется через ее основание «d». В свою очередь основание СС – это количество цифр, которое используется для представления чисел в данной системе. Отсчет цифр начинается с 0. Примеры различных СС и цифр, которые используются для представления чисел в СС:

d=5: 0, 1, 2, 3, 4

d=8: 0, 1, 2, 3, 4, 5, 6, 7

d=10: 0, 1, 2, 3, 4, 5, 6, 7, 8,9

d=16: 0, 1, 2, 3, 4, ,5, 6, 7, 8, 9, A, B, C, D, E, F

Для уточнения системы счисления, в которой представляется число, значение основания «d» СС записывается справа от самого числа, на месте индекса числа. Так, например, если необходимо подчеркнуть, что число 34 215 представлено в 8-й СС, то его можно записать в следующем виде: 342158. Существует формула десятичного эквивалента числа, представленного в СС с основанием «d»:

 

(anan-1an-2…a2a1, b1b2…bm )d = andn-1 + an-1dn-2 + …+ a2d1 + a1d0 + b1d-1 +

+ b2d-2 +…+ bmd-m

где ai – цифры целой части числа, bj – цифры дробной части числа.

При помощи данной формулы можно не только найти десятичный эквивалент числа представленного с основанием «d», но и сравнить числа, представленные в системах счисления, с разными основаниями.

Поскольку в ЭВМ используются три системы счисления, d1 = 2, d2 = 10, d3 = 16, то, безусловно, должны быть правила перевода чисел из одной системы счисления в другую. Такие правила существуют, в ЭВМ они выполняются программно. Перевод чисел из СС с основанием «S» в СС с основанием «Н» для целых и дробных чисел выполняется по самостоятельным правилам. Ограничений на значения «S» и «Н» не существует.

Правило перевода целых чисел: для того чтобы число, представленное в старой «S» СС, перевести в новую СС с основанием «Н», необходимо само число и получающиеся частные от деления делить на основание «Н» новой СС, представленное в старой «S»-ой СС, до тех пор, пока частное от деления не будет меньше основания «Н» новой СС. Цифрами числа в новой «Н» -ой СС будут остатки частичных делений, записанные в порядке, обратном их получению.

Пример: перевести целое число 3756110 из системы счисления S = 10 в систему счисления Н =8.

 

37561 8 3756110=913168

32 4697 8

55 40 587 8

48 69 56 73 8

76 64 27 72 9

72 57 24 1

61 56 3

56 1

6

 
 


 

Правило перевода дробных чисел: для перевода дробного числа из СС с основанием «S» в СС с основанием «Н», необходимо дробную часть самого числа и дробные части получающихся частичных произведений умножать на основание «Н» новой СС, представленное в старой «S» СС. Цифрами дробного числа в новой «Н» СС будут целые части получившихся частичных произведений, записанные в порядке их получения.

Пример: перевести число 0,73110 из системы счисления с основанием S = 10 в систему счисления с основанием Н = 2.

 

0 731

*2

1 462

*2

0 924

*2

1 848

*2

1 696

*2

1 392

*2

0 784

*2

1 568

 

0,73110= 0,10111012

В машинной арифметике используется также система кодирования «8421», при помощи которой устанавливается связь между цифрами 8-, 10- и 16-ричной системами счисления и их двоичным представлением при помощи четырехразрядного двоичного числа (табл. 3.1):

a4а3а2а1 2 = 23а4 + 22а3 + 2а1 + 20а1 = 8а4 + 4а3 + 2а2 + 1а1

8, 4, 2, 1 – это весовые коэффициенты двоичных разрядов α4, α3, α2, α1 соответственно. Поскольку цифра 2 является основанием и двоичной СС, и целых степеней, являющихся одновременно основаниями 8- и 16-ричной систем счисления: 8 = 23, 16 = 24, то в двоичной арифметике доказаны и сформулированы упрощенные правила перевода чисел из двоичной СС в 8- и 16-ричную и, наоборот, из 16- и 8-ричной СС в 2-ую.

Таблица 3.1

Система кодирования «8421»

    Цифры Весовые коэффициенты разрядов
  а4 а3   а2   а1  
 
       
 
  А
B
C
D
E
F
                 

 

 

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

Пример: число 7321,038 перевести в 2-ую СС.

7 3 2 1 , 0 38

111 011 010 001 , 000 011

7321, 038 = 111 011 010 001, 000 0112

Правило перевода из 2-ичной СС в 8-ричную СС: для перевода чисел, представленных в 8-ричной СС, в двоичную СС достаточно разбить разряды целой и дробной части числа вправо и влево от запятой на триады двоичных разрядов и каждую триаду заменить ее восьмеричным эквивалентом в соответствии с табл. 3.1.

Пример: число 10111011101, 10110112 перевести в 8-ричную СС.

10 111 011 101, 101 101 12 = 2735, 5548

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

Пример: число АВ30Е, С6716 перевести в двоичную СС.

А В 3 0 Е, С 6 7

1010 1011 0011 0000 1110, 1100 0110 0111

АВ30Е, С6716 = 10101011001100001110, 110001101112

Правило перевода из 2-ичной СС в 16-ричную СС: для перевода чисел, представленных в двоичной СС, в 16-ричную достаточно целую и дробную части двоичного числа разбить на тетрады двоичных разрядов вправо и влево от запятой, а затем каждую тетраду заменить ее 16-ричным эквивалентом в соответствии с табл. 3.1.

Пример: число 110111010111101,1011111011000012 перевести в 16-ричную СС.

110 1110 1011 1101, 1011 1110 1100 00102

6 Е В D , В Е С 2

110111010111101, 1011111011000012 = 6ЕВD, ВЕС216

 

 

3.2. Принципы кодирования алфавитно-цифровой информации

В повседневной жизни вне ЭВМ для обмена информацией используется 196 различных символов. Это графические символы: буквы строчные и прописные русского и латинского алфавитов, десятичные цифры, знаки препинания, знаки арифметических и логических операций, разделительные знаки и т. д., – а также управляющие символы: переход на новую строку “enter”, уничтожение символов – “delete”, управление курсором и т. д. Исходя из технических возможностей электронных устройств внутри ЭВМ, все символы могут иметь только двоичное представление. При помощи формулы (1.1) устанавливается связь между количеством двоичных разрядов N в двоичном коде и количеством неповторяющихся уникальных комбинаций двоичных кодов H.

В настоящее время в ЭВМ используются 7- и 8-разрядные двоичные коды КОИ-7 и ДКОИ.

КОИ-7 – код обмена информацией семибитный представляется в виде двух таблиц КОИ-7Н0 и КОИ-7Н1 (приложение 1). Таблица КОИ-7Н0 содержит буквы регионального алфавита, в нашей стране – русского, КОИ-7Н1 содержит буквы латинского алфавита. Суммарные возможности обеих таблиц – 256 различных семибитных кодов, что превышает количество используемых 196 символов, используемых вне ЭВМ в повседневной практике. Код КОИ-7 традиционно используется для представления информации на дисплеях. На каждой клавише клавиатуры размещено от одного до трех символов, закодированных при помощи таблиц КОИ-7Н0 и КОИ-7Н1. Переход с одной таблицы кодировки информации на другую осуществляется при помощи специальной клавиши, которая обеспечивает смену регистра с верхнего на нижний и наоборот. Сама операция «смены состояния регистра» является управляющим символом и также имеет 7-битный код, зафиксированный в таблицах КОИ-7Н0 и КОИ-7Н1 и размещаемый в цепочках набираемой информации при вводе ее с клавиатуры. Подобное «плотное» размещение вводимой вне машинной (символьной) информации на клавиатуре вызвано эргономическими соображениями – удается избежать увеличения габаритных размеров клавиатуры, что особенно актуально для переносных и карманных ПК.

ДКОИ – это внутри машинный восьмиразрядный двоичный код обмена и обработки информации. Таблица кода ДКОИ содержит 16 строк и 16 столбцов (приложение 2). Поскольку возможности восьмиразрядного двоичного кода перекрывают потребности 196 вне машинных символов, то в ней содержится порядка 25% пустых «вакантных» клеточек для каких- либо других символов, в настоящее время не используемых.

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

1. Прямой код (ПК).

2. Обратный код (ОК).

3. Дополнительный код (ДК).

4. Модифицированный прямой код (МПК).

5. Модифицированный обратный код (МОК).

6. Модифицированный дополнительный код (МДК).

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

Прямой код (ПК) числа «Х» – это

Х, если X ≥ 0

[X]ПК =

1-Х, если X ≤ 0.

[X]ПК положительного числа совпадает с самим числом, отрицательного – имеет иное представление. Представление двоичных чисел специальными кодами позволяет осуществить кодировку знаков числа «+» и «–» при помощи двоичных цифр «0» и «1». ПК для двух одинаковых по абсолютному значению и имеющих противоположные знаки двоичных чисел Х1 = +0,10112 и Х2 = –0,10112 будут иметь совершенно разное представление:

[X1]ПК = 0,1010, [X2]ПК = 1 – (-0,1011) = 1.1011

Обратный код (ОК) числа получается из его прямого кода. Если число положительное, то значение его ОК совпадает с ПК, если число отрицательное, то для получения его ОК необходимо в знаковом разряде кода ПК установить значение «1», а разряды числовой части проинвертировать, т. е. выполнить поразрядно логическую операцию «НЕ».

Дополнительный код ДК числа получается из его обратного кода. Если число положительное, то значение его ДК совпадает с ПК, если число отрицательное, то для получения его ДК достаточно прибавить «1» ия «1» к младшему разряду его ОК.

МПК, МОК и МДК отличаются от обычных кодов ПК, ОК и ДК наличием двух знаковых разрядов: коды положительных чисел будут содержать в знаковых разрядах «00», отрицательных – «11». Как указывалось выше, это отличие МПК, МОК, МДК от ПК, ОК, ДК обусловлено их использованием в алгоритмах выполнения арифметических операций. Для размещения в ОП используется ПК, ОК и ДК.