
- •Учебные вопросы и распределение времени
- •1. Формы представления информации.
- •2. Системы счисления, используемые в асу (кса).
- •2.1. Развитие систем счисления.
- •2.2. Системы счисления.
- •2.2.1. Десятичная система счисления.
- •2.2.2. Двоичная система счисления.
- •2.2.3. Восьмеричная система счисления.
- •2.2.4. Шестнадцатеричная система счисления.
- •2.2.5. Двоично-десятичная система счисления.
- •2.2.6. Изображение десятичных чисел в различных системах счисления.
- •3. Способы перевода чисел из одной системы счисления в другую.
- •3.1. Способ деления на основание.
- •3.2. Способ умножения на основание.
- •3.3. Правило перевода неправильных дробей.
- •3.4. Табличный способ перевода.
- •Значение целочисленных степеней числа 2
- •3.5. Использование промежуточной системы счисления.
- •4. Формы представления чисел.
- •4.1. Естественная форма представления чисел с фиксированным положением запятой.
- •4.2. Нормальная форма представления чисел с плавающим положением запятой.
- •5. Способы кодирования чисел.
- •6. Правила выполнения арифметических операций над числами.
- •7. Контроль работы цифровых устройств.
- •Заключение
5. Способы кодирования чисел.
Все системы счисления допускают использование как положительных, так и отрицательных чисел для обозначения которых, как известно, применяют знаки плюс (+) или минус (-). Число в таком обозначении называется числом со знаком. Поскольку узлы вычислительной техники и автоматики построены на схемах двоичной логики и для представления двоичных состояний применяются символы «0» и «1», то эти же символы следует использовать и для обозначения знака числа. Для обозначения положительных значений используют символ «0», для отрицательных - символ «1».
В разрядной сетке для знаков чисел отводится специальный двоичный разряд, который располагается перед старшим разрядом самого числа, и называется знаковым разрядом. При записи кода числа на бумаге знаковый разряд отделяется от числа точкой.
При выполнении арифметических действий в ЦЭВМ двоичные числа со знаком могут быть представлены одним из трех способов: в прямом, обратном или дополнительном коде.
Прямой код числа.
Наиболее простым способом представления числа со знаком является прямой двоичный код числа. Число в прямом двоичном коде называют также двоичным числом со знаком. Для n - разрядного двоичного числа обычно крайний левый разряд используется для изображения знака, а в оставшихся n-1 разрядах записывается абсолютное значение числа в двоичной системе счисления.
Прямой код двоичного числа совпадает по изображению с записью самого числа. Отличие составляет добавление знакового разряда, в котором для отрицательных чисел записывается «1», а для положительных - «0».
А(2) = + 1001(2), |
[A]пр = 0.1001 |
В(2) = - 1001(2), |
[В]пр = 1.1001 |
Например.
В данном случае для отделения знакового разряда от цифровых разрядов использовалась точка. В некоторых случаях для этой цели используется запятая. Во многих случаях (например, в листингах при записи констант) точка (или запятая) обычно опускается.
При изображении положительного числа:
+А пр = +26(10) = 0.011010(2)
изменяется только знак по сравнению с предыдущим примером, т.е.
А пр = +26(10) = 0.011010(2)
Обратный код числа. При представлении двоичного числа в обратном коде знаковому разряду приписывается отрицательный вес - n-1
[2 - 1].
Для положительных чисел изображение числа в обратном коде идентично прямому коду этого же числа.
Однако для отрицательных чисел отрицательный вес знакового разряда изменяет содержимое цифровых разрядов. Целое число Х из n двоичных разрядов (включая знаковый) в обратном коде можно записать следующим образом:
N(x) = 0.Х |
n-1 |
|
при Х 0, |
N(x) = 1. |
{[2-1] - |X|} |
+ |
при Х 0. |
Например, изображение целого положительного числа А = 26(10) в виде семиразрядного двоичного кода выглядит следующим образом:
А доп = 0.011010(2).
Теперь рассмотрим отрицательное число А = -26(10). Модуль этого числа равен |X| = 26(10) = 011010(2). Поскольку с учетом знакового разряда:
n-1
7-1 6
n 2 -1=2 -1=2 -1=64-1=63=111111,
а [2 - 1] - |X| = 111111 - 011010 = 100101, то Адоп = 1.100101. + -
Сравнивая результаты рассмотренных примеров, можно заметить, что
А доп (Х) + А доп (Х) = 1.111111
Это уравнение отражает свойство, заключающееся в том, что при суммировании некоторого двоичного числа и его дополнения до единицы во всех разрядах получаются единицы. Из этого свойства вытекает следствие: если каждый разряд числа N(х) заменить его дополнением до единицы, то получим N(х).
Рассмотрим, например, число N(39) = 0.100111. Заменяя нули на единицы, а единицы на нули (образуя поразрядное дополнение числа до единицы), получим:
N(-39) = 1.011000.
Перевод отрицательного числа в обратном коде в десятичную систему счисления можно осуществить двумя способами. Один из них является обратным процедуре поразрядного дополнения числа до единицы.
Например, N(-х) = 1.011. Образуя поразрядное дополнение до единицы, получим число 0.100, т.е. число +410. Таким образом, 1.011 = -410.
При втором способе используется тот факт, что знаковый разряд n-разрядного двоичного числа
n-1
имеет отрицательный вес (2-1)n-1. В нашем примере n = 4; 2 – 1 = 7, и вес знакового разряда есть -7. Таким образом, 1.011 = -7 + 3 = -4(10).
Данный способ очень удобен, так как здесь просто переводится в десятичную систему содержимое цифровых разрядов и к полученному результату добавляется отрицательный вес знакового разряда. Основное преимущество обратного кода заключается в том, что его применение позволяет заменить операцию вычитания операцией сложения.
Пример. Выполнить операцию 39(10) - 26(10).
Решение. Преобразуем данную операцию следующим образом:
39(10) - 26(10) = 39(10) + (-26(10)).
В обратном коде значения этих чисел будут соответственно равны:
N(39) = 0.100111
N(-26) = 1.100101.
N(39) + N(-26) = 0.100111
+ 1.100101
10.001100
Пренебрегая переносом из знакового разряда, получим 0.001100(2) = +12(10).
Правильный ответ получается путем добавления единицы циклического переноса к младшему разряду полученной суммы.
0.001100 + 0.000001 = 0.001100(2) = +13(10).
Из-за необходимости учета циклического переноса обратный код чисел для выполнения арифметических операций в современной вычислительной технике, как правило, не применяется. Для этой цели используют дополнительный код, описанный ниже. Однако для записи чисел в дополнительном коде полезно знать обратный код.
Дополнительный код числа. Представление двоичных положительных чисел в дополнительном коде идентично представлению их в прямом или обратном коде. Для отрицательных чисел дополнительный код равен обратному с добавлением единицы младшего разряда. Вследствие этого вес знакового разряда для дополнительного кода числа равен – 2(n-1) при значениях Х < 0.
Поэтому n - разрядное целое двоичное число Х в дополнительном коде будет представлено следующим образом : М(х) = N(х) = 0.Х n-1 при Х 0,
М(х)=N(х)+1=1.{2 -|X|} при Х < 0,
Пример. Записать число -26(10) в дополнительном коде. Процедуру построения дополнительного кода удобно выполнить поэтапно.
Решение. 1. Определить двоичный код числа 26(10): 26(10) = 11010(2).
2. Определить прямой код числа 26(10): N(26) = 0.11010.
3. Определить обратный код числа -26: N(-26) = 1.00101.
4. Прибавить единицу младшего разряда: М(-26) = 1.00110.
Данный способ образования дополнительного кода легко реализуется при помощи технических средств.
Другой способ образования дополнительного кода заключается в следующем: записывается прямой код модуля числа, начиная с младшего разряда, переписываются значения всех разрядов до разряда, содержащего единицу, включительно; для остальных разрядов производится поразрядное дополнение до единицы.
Пример. Записать число -26(10) в дополнительном коде.
Решение. 1. Записать модуль числа в прямом коде:
|-26(10)| = 0.11010(2).
2. Переписать значения младших разрядов до разряда, содержащего включительно: М(-26)=Х.ХХХ10.
3. Произвести дополнение до единицы в остальных разрядах:
М(-26) = 1.001,10
Перевод отрицательного числа, записанного в дополнительном коде, в десятичную систему счисления производится по тем же правилам, что и из обратного кода, но с учетом того, что вес
n-1
знакового разряда равен - 2.
Пример. М(х) = 1.00110. Определить Х.
Решение. 1. Определить дополнение числа до единицы : N(x)=0.11001=25(10).
2. Прибавить к полученному результату единицу младшего разряда: N(x) = 25+1 = 26(10).
таким образом, Х = -26(10).