Машинное представление целых чисел




 

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

Таблица 2.1

Таблица сложения Таблица вычитания Таблица умножения
0+0=0 0+1=1 1+0=1 1+1=10 0–0=0 1–0=1 1–1=0 10–1=1 0 0=0 0 1=0 1 0=0 1 1=1

 

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

При вычитании двоичных чисел в данном разряде при необходимости занимается единица из старшего разряда. Эта занимаемая единица равна двум единицам данного разряда.

Умножение двоичных чисел производится по тем же правилам, что и для десятичных с помощью таблиц двоичного умножения и сложения.

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

Пример: Вычислить X+Y. Вычислить X–Y.

X= 1101 X = 10010

Y= 101Y = – 101

X+Y= 10010 X-Y = 1101

 

Вычислить X Y. Вычислить X: Y.

110001.1  
1001 101.1
   
­– 1001  
1001  
   

 

X= 1001

Y= 101

1001

X Y= 101101

 

 

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

Прямой код. Прямой код двоичного целого числа совпадает по изображению с записью самого числа в двоичном виде. Число до полного машинного слова слева дополняется нулями. Значение знакового разряда (крайне левого) для положительных чисел равно 0, а для отрицательных чисел 1.

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

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

 

Число +1101: прямой код обратный код дополнительный код

0|0001101 0|0001101 0|0001101

Число –1101: прямой код обратный код дополнительный код

1|0001101 1|1110010 1|1110011

При сложении чисел в дополнительном коде единица переноса, которая может возникнуть в знаковом разряде, отбрасывается. При сложении чисел в обратном коде единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

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

Пример. Сложить X и Y в обратном и дополнительном кодах.

1) X= 111, Y= –11;

Сначала воспользуемся правилами двоичной арифметики: X–Y= 100

Воспользуемся кодами:

Прямой код Сложение в обратном коде Сложение в дополнительном коде
Xпр=0|0000111 Yпр=1|0000011   Xобр = 0|0000111 Yобр = 1|1111100 1 0|0000011 +1 (X+Y)обр= 0|0000100 Xдоп = 0|0000111 Yдоп = 1|1111101 1) 0|0000100   (X+Y)доп= 0|0000100

 

Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр = (X+Y)доп = (X+Y)пр .

 

2) X= –101, Y= –11;

Сначала сложим числа по обычным правилами: X –Y = –1011;

Далее сложим числа, используя коды

Прямой код Сложение в обратном коде Сложение в дополнительном коде
Xпр=1|0000101 Yпр=1|0000110   Xобр = 1|1111010 Yобр = 1|1111001 1 1|1110011 +1 (X+Y)обр= 1|1110100 Xдоп= 1|1111011 Yдоп= 1|1111010 1) 1|1110101   (X+Y)доп= 1|1110101

Так как сумма является кодом отрицательного числа (знак 1) то необходимо перевести результаты в прямой код:

1) из обратного кода (X+Y)обр=1|1110100 (X+Y)пр=1|0001011;

2) из дополнительного кода (X+Y)доп = 1|1110101 (X+Y)пр = 1|0001011.

Таким образом, X+Y= –1011 и полученный результат совпадает с обычной записью.

Задание

1. Перевести числа в десятичную систему счисления.

2. Перевести числа из десятичной системы счисления.

3. Заданы двоичные числа X и Y. Вычислить X+Y и X–Y.

4. Записать число в прямом, обратном и дополнительном кодах

5. Перевести X и Y в прямой, обратный и дополнительный коды. Сложить их в обратном и дополнительном кодах. Результат перевести в прямой код. Проверить полученный результат, пользуясь правилами двоичной арифметики.

Контрольные вопросы

1. Почему в вычислительных системах используется двоичное представление данных?

2. Какая модель оперативной памяти называется «плоской»?

3. Что такое позиционная система счисления?

4. С какой целью используется «дополнительный код»?

 

Варианты заданий к лабораторной работе

№1

1) ; ; 2) с.с; 3) X= , Y= . 4) 11010 5) X= –11010; Y= 1001111,

№2

1) ; ; ; 2) с.с.; 3) X= ; Y= ; 4) –11101; 5) X= –11101; Y= –100110,

№3

1) ; ; ; 2) с.с.; 3) X= , Y= ; 4) –101001; 5) X= 1110100; Y= –101101,

№4

1) ; ; ; 2) с.с.; 3)X= ; Y= ; 4) –1001110; 5) X= –10110; Y= –111011,

№5

1) ; ; ; 2) с.с.; 3) X= ; Y= ; 4) –1001111; 5) X= 1111011; Y= –1001010,

№6

1) ; ; ; 2) с.с.;

3) X= ; Y= ; 4) –1001001; 5) X= 1011011; Y= –1011010,

№7

1) ; ; 2) с.с; с.с. 3)X= , Y= . 4) 1101001. 5) X= –11110; Y= 1001111,

№8

1) ; ; 2) с.с.; с.с. 3)X= , Y= . 4) –11101. 5) X= –11101; Y= –100110,

№9

1) ; ; ; 2) с.с.; 3)X= ; Y= ; 4) –101001; 5) X= 1110100; Y= –111101,

№10

1) ; ; ; 2) с.с.;

3) X= ;Y= ; 4) –1101110; 5) X= –10110; Y= –111011,

№11

1) ; ; ; 2) с.с.; 3) X= ; Y= ; 4) –1001111; 5) X= 1111011; Y= –1011010,

№12

1) ; ; ; 2) с.с.;

3) X= ;Y= ; 4) –1001001; 5) X= 1111011; Y= –1011010,

№13

1) ; ; 2) с.с; с.с.;

3) X= ; Y= ; 4) –101001; 5) X= 1110100; Y= –101101,

№14

1) ; ; 2) с.с.; с.с.;

3) X= ; Y= ; 4) –1001110; 5) X= –10110; Y= –111011,

№15

1) ; ; 2) с.с.; с.с.;

3) X= ; Y= ; 4) –1001111; 5) X= 1111011; Y= –1001010,

№16

1) ; ; ; 2) с.с.;

3) X= ; Y= ; 4) –1001001; 5) X= 1011011; Y= –1011010,

№17

1) ; ; 2) с.с; с.с.;

3) X= ; Y= ; 4) 1101001; 5) X= –11110; Y= 1001111,

№18

1) ; ; 2) с.с.; с.с.;

3) X= ; Y= ; 4) –11101; 5) X= –11101; Y= –100110,

№19

1) ; ; ; 2) с.с.;

3) X= ; Y= ; 4) –101001; 5) X= 1110100; Y= –111101,

№20

1) ; ; 2) с.с.; с.с.;

3) X= ; Y= ; 4) –101101111; 5) X= 1011011; Y= –1001010.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: