Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.Учебное пособие - КузГТУ.pdf
Скачиваний:
231
Добавлен:
10.05.2015
Размер:
5.61 Mб
Скачать

Если при описании произвольной p-ичной системы счисления не будет указан вид ее цифр, то принято считать, что первые десять цифр совпадают с десятичными, а следующие 26 – с латинскими буквами. Остальные цифры записываются в виде их десятичных представлений, заключенных в квадратные скобки. Так [50] в системах счисления с основаниями, большими 50, будет обозначать 51-ю по счету от 0 цифру. Максимальную цифру в произвольной p-ичной системе счисления обозначают [p-1].

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

Пример: Десятичное число 14 можно записать:

в двоичной системе 1112 (14 = 1 × 23 + 1 × 22 + 1 × 21);

в троичной системе 1123 (14 = 1 × 32 +1 × 31 + 2 × 30);

в четверичной системе 324 (14 = 3 × 41 + 2 × 40);

в 14-ричной системе 1014 (14 = 1 × 41 + 0 × 40).

В системах счисления с основанием, большим 14, данное число будет представлено одной цифрой (это будет буква латинского алфавита Е или некий другой символ).

Любую правильную дробь можно представить в виде конечной или бесконечной суммы отрицательных степеней любого натурального числа p > 1.

Например:

0,123 = 1 × 10-1 + 2 × 10-2 + 3 × 10-3 = 0,1 + 0,02 + 0,003.

1.5.2. Алгоритм получения дополнительного k-разрядного кода отрицательного числа

Определение 7. В p-ичной системе счисления любое неотрицательное вещественное число можно записать в виде

n

ai pi ,0 ai < p,n >0 ,

i=−∞

где p > 1 – основание позиционной системы счисления, ai – цифры числа a в p-ичной системе счисления.

Отрицательные числа в p-ичных системах счисления представляются с помощью знака минус перед выражением для модуля отрицательного числа.

Определение 8. Представление числа в привычной для человека форме «знак-величина», при которой старший раз-

18

ряд ячейки отводится под знак, остальные k-1 разрядов – под цифры числа, называется прямым кодом.

Например, прямые коды двоичных чисел 110012 и -110012 для

восьмиразрядной

ячейки

соответственно равны

00011001

и 10011001.

 

 

 

Положительные целые числа представляются в компьютере

с помощью прямого кода.

 

 

Отрицательные

целые

числа представляются в

компьютере

с помощью дополнительного кода.

Определение 9. k-разрядный дополнительный код отрицательного числа m – это запись в k разрядах положительного числа 2k - |m|, где |m| – модуль отрицательного чис-

ла m, |m| <= 2k -1.

Алгоритм получения этого кода выглядит следующим обра-

зом:

1)модуль отрицательного числа представить прямым кодом в k двоичных разрядах;

2)значения всех разрядов инвертировать (все нули заменить единицами, а единицы – нулями), получив, таким образом, k-разрядный обратный код исходного числа;

3)к полученному обратному коду, трактуемому как k-разрядное неотрицательное двоичное число, прибавить единицу.

Пример: Найдем дополнительный код числа -52. Для восьмиразрядной ячейки:

0011 0100 – прямой код числа |-52| = 52; 1100 1011 – обратный код числа 52; 1100 1100 – дополнительный код числа -52.

Для шестнадцатиразрядной ячейки:

0000 0000 0011 0100 – прямой код числа |-52| = 52; 1111 1111 1100 1011 – обратный код числа 52; 1111 1111 1100 1100 – дополнительный код числа -52.

Описанный выше алгоритм получения дополнительного кода

для отрицательного числа знаковую единицу в левом разряде образует автоматически при |m| <= 2k -1.

Если же 2k -1 < |m| < 2k, то попытка реализации данного алгоритма приведет к тому, что в левом разряде будет находиться цифра 0, соответствующая компьютерному представлению положитель-

19

ных чисел, что неверно.

Восстановить модуль отрицательного исходного десятичного числа по его дополнительному коду можно двумя способами.

Способ 1 (обратная цепочка преобразований):

1)вычесть единицу из дополнительного кода;

2)инвертировать полученный код;

3)перевести полученное двоичное представление числа в де-

сятичное.

Способ 2: по приведенному выше алгоритму построить дополнительный код для имеющегося дополнительного кода искомого числа и представить результат в десятичной системе счисления.

Пример получения десятичного значения числа по его дополнительному коду 100101112.

Способ 1:

1)из дополнительного кода вычитаем единицу

10010111 - 1 = 10010110 (получили обратный код);

2)инвертируем полученный обратный код 01101001 (получили модуль отрицательного числа);

3)переводим полученное двоичное значение в десятичную

систему счисления:

011010012 = 26 + 25 + 23 + 1 = 64 + 32 + 8 + 1 = 105.

Способ 2:

1)инвертируем имеющийся дополнительный код: 01101000;

2)прибавляем единицу: 01101000 + 1 = 01101001 (получили модуль отрицательного числа);

3)переводим полученное двоичное значение в десятичную

систему счисления:

011010012 = 26 + 25 + 23 + 1 = 64 + 32 + 8 + 1 = 105.

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

Разрядность

Минимальное число

Максимальное число

8

-128

127

16

-32768

32767

32

-2147483648

2147483647

64

-9223372036854775808

9223372036854775807

20