Выдержка из текста работы
Цель работы: ознакомление с назначением и принципом записи чисел в различных системах счисления; освоить методику перевода чисел из одной СС в другую; изучить правила выполнения арифметических действий над двоичными числами; освоить методику выполнения арифметических операций над числами.
Существующие типы систем исчисления
Любая вычислительная машина может быть представлена как машина, реализующая различные алгоритмы путем выполнения арифметических операций над числами, представленными в той или иной системе исчисления, в заданных форматах и с использованием специальных машинных кодов.
Под системой исчисления понимается способ представления любого числа по средствам некоторого алфавита символов, называемых цифрами существует два типа систем исчисления:
- позиционные, обладающие преимуществом в наглядности представлении чисел и в простоте выполнения арифметических операций (пример: десятичная система исчисления).
- Непозиционные, имеющие очень сложный способ записи чисел и громоздкие правила выполнения арифметических операций (пример: римская система исчисления).
В общем случае в позиционных системах с основанием R любое число может быть представлено в виде полинома от основания R:
anan-1…a0,b1b2…bm=anRn+an-1Rn-1+ ….+b1R-1+b2R-2+bmR-m– полином Горнера
где an,an-1,a0 –целая часть числа;
b1,b2…bm –дробная часть числа.
Запятая отделяет целую часть числа от дробной и опускается, если нет дробной части. Позиции цифр, отсчитываемые от запятой, называют разрядами. В позиционной системе счисления значения каждого разряда больше значения сосоеднего справа разряда в число раз, равное основанию R системы.
Пример в десятичной системе исчисления число 6097,108 может быть представлено в виде:
6097,108=6103+0102+9101+7100+110-1+010-2+810-3
В ЭВМ применяют наряду с десятичной системой счисления (подготовка исходных данных, выдача результатов вычисления) двоичную систему (работа простых элементов машины), шестнадцатеричную и восьмеричную (запись программ) и некоторые другие.
Наибольшее распространение в ЭВМ двоичная система исчисления, для записи чисел, в которой используется два числа 0 (нуль) и 1 (единица)
Пример двоичное число представленное в виде полинома (10101101,101)2=127+026+125+024+123+122+021+120+12-1+02-2+12-3
Соответствует десятичному числу (173,625)10
Применение двоичной системы позволяет уменьшить общее количество аппаратуры и создает большие удобства для проектирование ЦВМ, т. к. Для представления в машине разряда двоичного числа может быть использован любой простой элемент имеющий только два устойчивых состояния. Такими элементами являются реле, триггерные схемы и т. д. Для представления десятичного разряда потребовалось четыре таких элемента.
Для записи чисел в восьмеричной системе (R=8) используется восемь цифр: 0,1,2,3,4,5,6,7. В шестнадцатеричной системе (R=16) Для записи чисел используется 16 цифр: 0от 0 до 15, при этом, чтобы не изображать одну цифру двумя знаками, вводят специальное обозначение математическими буквами:
Десять – А, одиннадцать – В, двенадцать — С, тринадцать –D, четырнадцать — E, пятнадцать – F.
Перевод чисел из системы исчисления в другую автоматически устройством машины. Однако при составлении программы решения задачи у оператора может возникнуть необходимость ручного перевода отдельных чисел из одной системы исчисления в другую.
Правила перевода чисел из одной системы счисления в другую
Перевод целых чисел из десятичной СС в любую другую СС производиться методом последовательного деления на основание новой системы до тех пор, пока частное от деления не будет меньше основания новой СС . Число в новой СС записывается в виде остатков от деления, начиная с последнего частного, справа налево.
Примеры 3610=10010023610=4483610=2416
36 |
2 |
36 |
8 |
36 |
16 |
|||||||||||
0 |
18 |
2 |
4 |
4 |
4 |
4 |
||||||||||
0 |
9 |
2 |
||||||||||||||
1 |
4 |
2 |
||||||||||||||
0 |
2 |
2 |
||||||||||||||
0 |
1 |
Перевод дробной части десятичного числа производиться путем последовательного умножения на основание новой системы до тех пор, пока дробная часть не станет равной нулю. Для некоторых чисел такое условие не выполняется и количество цифр после запятой определяется требуемой точностью. Дробь в новой системе исчисления записывается в виде целых частей полученных произведений, начиная с первого числа
Пример 0,26=0,012
-
0,
26
2
0,
52
2
1,
04
2
0,
08
2
2,
16
Перевод десятичной дроби производиться в два этапа: сначала переводиться целая часть числа, затем дробная
25,11510=11001,00012
25 |
2 |
0 |
115 |
|||||||||
1 |
12 |
2 |
2 |
|||||||||
0 |
6 |
2 |
0 |
230 |
||||||||
0 |
3 |
2 |
2 |
|||||||||
1 |
1 |
0 |
460 |
|||||||||
2 |
||||||||||||
0 |
920 |
|||||||||||
2 |
||||||||||||
2510=110012 |
1 |
840 |
0,11510=0,00012
Обратный перевод из какой-либо позиционной СС в десятичную осуществляется составлением полинома Гарнера с основанием данной системы с последующим вычислением его значения.
Пример, 11001,0012=124+123+022+021+120+02-1+02-2+12-3=25,12510
Для перевода чисел из двоичной системы в восьмеричную( или шестнадцатеричную) СС поступают следующим образом:
Двигаясь от запятой в лево и в право, разбивают двоичное число на группы по три (или четыре) разряда, дополняя при необходимости нулями крайние левую и правую группы, Затем каждую из групп по три (по четыре) разряда заменяют соответствующей восьмеричной (шестнадцатеричной) цифрой. (см. табл. 1)
Пример
(1101111001,1101)2=
001 |
101 |
111 |
001, |
110 |
100 |
=(1571,64)8 |
1 |
5 |
7 |
1, |
6 |
4 |
0011 |
0111 |
1001, |
1101 |
=(379,D)16 |
3 |
7 |
9, |
D |
Для перевода восьмеричного числа в двоичную форму каждую цифру этого числа заменяют соответствующим трехразрядным двоичным числом. Таким же образом для перевода от шестнадцатеричной системы к двоичной каждую цифра шестнадцатеричного числа заменяется соответствующим четырехразрядным двоичным числом. Ненужные нули отбрасываются.
Пример (305,4)8=(11000101,1)2
3 |
0 |
5, |
4 |
|
011 |
000 |
101, |
100 |
=(11000101,1)2 |
(305,4)16=(1100000101,01)2
3 |
0 |
5, |
4 |
|
0011 |
0000 |
0101, |
0100 |
=(1100000101,01)2 |
7 |
B |
2, |
E |
|
0111 |
1011 |
0010, |
1110 |
=(111110110010,111)2 |
Двоичная арифметика
Двоичная система и двоичный алфавит используется во многих ЦВМ для представления и хранения чисел и команд, и при выполнении арифметических и логических операций.
Правила выполнения арифметических действий над двоичными числами таблицами двоичного сложения, вычитания, умножения
Таблица двоичного сложения |
|
Таблица двоичного вычитания |
|
Таблица двоичного умножения |
0+0=0 |
|
0-0=0 |
|
00=0 |
0+1=1 |
|
1-0=1 |
|
01=0 |
1+0=1 |
|
1-1=0 |
|
10=0 |
1+1=0+еденица переноса в старший разряд |
|
10-1=1 |
|
11=1 |
Правила арифметики во всех позиционных системах аналогичны. Поэтому сложение двух чисел в двоичной системе можно выполнить столбиком начиная с младшего разряда. В результате цифра соответствующего разряда суммы и, возможно, также единица переноса в старший разряд.
Пример,
+ |
1 |
1 |
0 |
1 |
1 |
1, |
0 |
1 |
|
1 |
0 |
0 |
1 |
1, |
1 |
0 |
|
1 |
0 |
0 |
1 |
0 |
1 |
0, |
1 |
1 |
При вычитании чисел в данном разряде двоичной системы при необходимости занимается единица из следующего старшего разряда. Эта занимаемая единица равна двум единицам данного разряда.
— |
1 |
1 |
0 |
1 |
1, |
1 |
0 |
|
1 |
1 |
0 |
1, |
0 |
1 |
|
|
|
1 |
1 |
1 |
0, |
0 |
1 |
Умножение двух многоразрядных чисел производиться путем образования частных произведений и последующего их суммирования. В соответствии с таблицей двоичного умножения каждое частное произведение равно нулю, если в соответствующем разряде множителя стоит нуль, или равно множимому, сдвинутому на соответствующее число разрядов влево, если в разряде множителя стоит единица. Операция умножения многоразрядных двоичных чисел сводиться к операциям сдвигам и сложениям, Положение запятой определяется также, как при умножении десятичных чисел.
1011,1101,01=111100,0011
|
1 |
0 |
1 |
1 |
1 |
||||
1 |
0 |
1 |
0 |
1 |
|||||
1 |
0 |
1 |
1 |
1 |
|||||
0 |
0 |
0 |
0 |
0 |
|||||
1 |
0 |
1 |
1 |
1 |
|||||
0 |
0 |
0 |
0 |
0 |
|||||
1 |
0 |
1 |
1 |
1 |
|||||
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Деление чисел в двоичной системе производится аналогично делению десятичных чисел. Делимое и делитель приводят к виду целых двоичных чисел путем переноса запятой в делителе и делимом на одинаковое число разрядов и дописывание нулей в недостающие справа разряды
Пример, 1100,011:10,01=101,1
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1, |
1 |
||||
0 |
1 |
1 |
0 |
1 |
1 |
|||||||
1 |
0 |
0 |
1 |
0 |
||||||||
1 |
0 |
0 |
1 |
0 |
||||||||
1 |
0 |
0 |
1 |
0 |
||||||||
0 |
Прямой обратный и дополнительный коды
При проектировании вычислительных устройств необходимо решить вопрос о способах представления в машине положительных и отрицательных чисел и о признаке переполнения разрядной сетки. Данный вопрос решается применением специальных кодов позволяющий все арифметические операции свести к сложению и сдвигу вправо или влево. Во всех этих кодах используется старший разряд для представления знака числа. Знак «плюс» кодируется цифрой нуль, а знак «минус» — цифрой единица. В прямом коде число хранится в виде абсолютной величины и кода знака числа.
Пример, а=+1101 а=-1101
апр=0.0001101 апр=1.0001101
восьмиразрядная сетка
В обратном коде запись положительных чисел не изменяется. Для записи отрицательных чисел в обратном коде записывают еденицу в знаковый разряд и выполняют инверсию цифровых разрядов.
Пример, а=+1101 а=-1101
аобр= апр=0.0001101 аобр=1.1110010
В дополнительном коде запись положительных чисел не изменяется. Для перевода отрицательных чисел в дополнительный код записывают еденицу в знаковый разряд и выполняют инверсию цифровых разрядов, прибавляют «единицу» в младший разряд числа.
Пример, а=+1101 а=-1101
адоп=аобр=апр=0.0001101 адоп=аобр+1=
-
+
1.
1
1
1
0
0
1
0
1
1.
1
1
1
0
0
1
1
Машинные арифметические операции над числами производятся в зависимости от формы представления этих чисел. Существует две формы представления этих чисел:
- с фиксированной запятой (естественная форма);
- с плавающей запятой (полулогарифмическая или нормальная
Действия над числами в естественной форме производятся с учетом того, что
а) числа охраняться в памяти компьютера в дополнительном коде;
б) складываются числа вместе со знаком при этом формируется знак результата;
в) при сложении чисел с разными знаками единица переноса из знакового разряда теряется;
г) признак переполнения разрядной сетки при сложении чисел с одинаковыми знаками говорит либо о том, что знак суммы не соответствует знаку слагаемых, либо о том . что перенос из старшего разряда в старший рассогласован.
Пример выполнения задания 4.
Найти сумму А=126 и В=267 при разных знаках этих чисел
Сначала представляем А и В в двоичном коде
А=12610=7E16=11111102В=26710=10В16=10000010112
— |
126 |
16 |
— |
267 |
16 |
|||||
112 |
7 |
16 |
16 |
16 |
||||||
14(Е) |
107 |
0 |
1 |
|||||||
96 |
||||||||||
11 (В) |
В естественной форме Н эти числа имеют вид:
Ап=0.000 0000 0111 1110 Вп=0.000 0001 0000 1011
[-Ад]=1.111 1111 1000 0010 [-Вд]=1.111 1110 1111 0101
Произведем сложение чисел, используя соответствующие коды
А+В=S1
+ |
Ап= |
0. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
Вп= |
0. |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
|
S1= |
0. |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
Системы счисления — Стр 2
-А-В=S2
+ |
-Ад= |
1. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
-Вд= |
1. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
|
S2= |
11. |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Образовался перенос из знакового разряда, который следует отбросить
S2- отрицательная
А-В=S3
+ |
Ап= |
0. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
-Вд= |
1. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
|
S3= |
1. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
S3 – отрицательная сумма
-А+В=S4
+ |
-Ад= |
1. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
Вп= |
0. |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
|
S2= |
10. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
Проверим правильность полученных результатов
А+В=39310=18916=0.000 0001 1000 10012
-А-В=-39310=-18916=1.111 1110 0111 01112
А-В=-14110=-8D16=1.111 1111 0111 00112
-А+В=14110=8D16=0.000 0000 1000 11012
Полученные суммы сравниваем с S1, S2, S3, S4.
Из-за переполнения разрядной сетки при сложении двух положительных (отрицательных) чисел может получиться отрицательный –“единица” в знаковом разряде (положительный – “нуль” в знаковом разряде) число. При обнаружении такой ошибки операционная система вырабатывает запрос на прерывание выполнения программы.
При использовании арифметических операций над числами в нормальной форме необходимо учитывать следующее:
а) числа в нормальной форме в памяти компьютера охраняться в прямом коде с нормализованными мантиссами:
б) сложение чисел производиться только для выровненных, одинаковых порядков;
в) при сложении мантисс с одинаковыми знаками возможно переполнение разрядной сетки, что является признаком нарушением нормализации.
Если слагаемые имеют одинаковый знак, то прямые коды мантисс складываются, а знак результата определяется по знакам слагаемых. Переполнение определяется переносом единицы из старшего разряда мантиссы в младший разряд характеристики, что нарушает нормализацию мантиссы. Нормализация мантиссы проводиться сдвигом ее вправо на один шестнадцатеричную цифру, а характеристика увеличивается на единицу.
Если знаки слагаемых различны, то отрицательные мантиссы преобразовываются в дополнительный код и производиться суммирование. Признаком того, что результат – положительное число, служит перенос из старшего разряда мантиссы, которая затем теряется. Признаком того, что результат – отрицательное число, служит отсутствие переноса из старшего разряда мантиссы. В этом случае мантисса представлена в дополнительном коде и должна быть преобразована прямой код. Если обнаруживается нарушения нормализации результата, т. е. первые четыре разряда нулевые, производиться сдвиг мантиссы влево на одну шестнадцатеричную цифру, а характеристика уменьшается на единицу.
Вопросы для самостоятельного изучения
- Структура ЭВМ.
- Представление команд в ЭВМ.
- Смешанные системы счисления.
- Естественная форма числа, или предоставление чисел в формате с фиксированной точкой.
- Нормальная форма числа, или предоставление чисел в формате с плавающей запятой.
Задание 1. Перевести десятичные числа А и В в двоичную, восьмеричную, шестнадцатеричную системы счисления и обратно.
Задание 2. Выполнить для числа А преобразование по следующей цепочке 10281016210
Задание 3. Выполнить над числами А и В в двоичной форме операции сложения, вычитание, умножения, деления.
Задание 4. Представить числа С и Д в прямом, обратном и дополнительных кодах. Найти сумму чисел С и Д при разных знаках ( С+Д; С-Д; -С-Д; -С+Д;). Проверить полученные результаты и проанализировать их.
Содержание и оформление отчета
Отчет выполняется в отдельной тетради и должен содержать:
- Название контрольной работы.
- Задание.
- Вычисления в установленном порядке.
Рекомендуемая литература
- Б. М. Коган, М. М. Коневский, Цифровые электрические машины и системы. М. Энергия, 1973, 680с.
- В. И Власов, Л. Н. Королев, А. Н. Сотников. Элементы информатики. М.: Наука, 1988, 320 с.
- И. А. Орлов, В. Ф. Корнюшко. Основы вычислительной техники и организация вычислительных работ. М.: Энергоатомиздат. 1984, 336с.
- Л. И. Щеголева. Основы вычислительной техники и программирования. Л. Энергоатомиздат, 1981 256с.
Таблица 1 Системы счисления
Десятичная |
Двоичная |
Восьмеричная |
Шестнадцатеричная |
Двоичное изображение триады |
0 |
0 |
0 |
0 |
0000 |
1 |
1 |
1 |
1 |
0001 |
2 |
10 |
2 |
2 |
0010 |
3 |
11 |
3 |
3 |
0011 |
4 |
100 |
4 |
4 |
0100 |
5 |
101 |
5 |
5 |
0101 |
6 |
110 |
6 |
6 |
0110 |
7 |
111 |
7 |
7 |
0111 |
8 |
1000 |
10 |
8 |
1000 |
9 |
1001 |
11 |
9 |
1001 |
10 |
1010 |
12 |
A |
1010 |
11 |
1011 |
13 |
B |
1011 |
12 |
1100 |
14 |
C |
1100 |
13 |
1101 |
15 |
D |
1101 |
14 |
1110 |
16 |
E |
1110 |
15 |
1111 |
17 |
F |
1111 |
Варианты заданий
№ варианта |
А |
В |
С |
D |
1 |
-45,38 |
11,3 |
115 |
305 |
2 |
-28,17 |
56,4 |
108 |
215 |
3 |
98,71 |
-38,19 |
209 |
112 |
4 |
11,18 |
-84,6 |
309 |
106 |
5 |
-39,42 |
58,12 |
364 |
216 |
6 |
85,31 |
38,63 |
605 |
118 |
7 |
28,56 |
-28,31 |
528 |
119 |
8 |
-74,31 |
32,36 |
428 |
225 |
9 |
41,15 |
-48,64 |
318 |
119 |
10 |
-15,36 |
82,9 |
244 |
360 |
11 |
29,57 |
-74,8 |
529 |
318 |
12 |
-43,81 |
32,41 |
631 |
819 |
13 |
91,41 |
-56,8 |
302 |
116 |
14 |
34,26 |
-81,4 |
489 |
341 |
15 |
-82,42 |
31,6 |
444 |
203 |
16 |
74,83 |
19,38 |
513 |
308 |
17 |
34,87 |
89,39 |
351 |
830 |
18 |
47,34 |
39,98 |
615 |
331 |
19 |
43,62 |
95,27 |
527 |
109 |
20 |
83,13 |
81,91 |
824 |
522 |
21 |
46,82 |
20,31 |
421 |
541 |
22 |
22,51 |
13,26 |
116 |
226 |
23 |
52,91 |
18,43 |
611 |
632 |
24 |
63,19 |
31,84 |
315 |
421 |
25 |
31,52 |
24,18 |
538 |
644 |
26 |
-58,31 |
82,19 |
314 |
518 |
27 |
34,69 |
63,12 |
115 |
386 |
28 |
69,54 |
-12,38 |
432 |
638 |
29 |
91,48 |
39,41 |
725 |
234 |
30 |
28,49 |
84,15 |
218 |
105 |