Файл: Арифметические основы функционирования компьютеров Задание 1 291,43.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.03.2024

Просмотров: 41

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В итоге получаем:

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0





1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1



1

1

1

1

1













0

1

0

1

1

1

1

1

0

1

1

1

0

1

1

0

0

1

1

1

1

0

1

0

1

0

1

1

0

0

0

0

1

0

0

1

1

1

1

1

1

0

1

0

1

1

0

1

1

1

0

0

1

0

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

0

0

1

0

0

0

1

0

0

0

1

1

0

1

0

0

1

1

1

1

1


Результат сложения: 11111111001001000100011010011111

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

Дополнительный код (прибавляем 1):

В итоге получаем:

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0































































0

0

0

0

0

0

0

1

1

0

1

1

0

1

1

1

0

1

1

1

0

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

1

1

0

1

1

0

1

1

1

0

1

1

1

0

0

1

0

1

1

0

0

0

0

1


Получили число 000000011011011101110010110.0001. В десятичном представлении это число имеет вид:

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

000000011011011101110010110 = 226*0 + 225*0 + 224*0 + 223*0 + 222*0 + 221*0 + 220*0 + 219*1 + 218*1 + 217*0 + 216*1 + 215*1 + 214*0 + 213*1 + 212*1 + 211*1 + 210*0 + 29*1 + 28*1 + 27*1 + 26*0 + 25*0 + 24*1 + 23*0 + 22*1 + 21*1 + 20*0 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 524288 + 262144 + 0 + 65536 + 32768 + 0 + 8192 + 4096 + 2048 + 0 + 512 + 256 + 128 + 0 + 0 + 16 + 0 + 4 + 2 + 0 = 899990


Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда.

0001 = 2-1*0 + 2-2*0 + 2-3*0 + 2-4*1 = 0.0625

В итоге получаем число 899990.0625

Результат сложения (в десятичном представлении): -899990.0625

Задание 5

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

Заменим операцию вычитание на сложение: 101000001.1111 + (-100100011.0110 )

Представим числа 101000001.11112 и 100100011.0110 2 в дополнительном коде.

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

Двоичное число 000000101000001.1111 имеет обратный код 0,000000101000001.1111

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

Число 101000001.1111 представляется в двоичном дополнительном коде как 0,000000101000001.1111

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

Двоичное число 000000100100011.0110 имеет обратный код 1,111111011011100.10010

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

В итоге получаем:

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0











































1

1

1

1

1

1

1

0

1

1

0

1

1

1

0

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

1

1

0

1

1

1

0

0

1

0

0

1

1


Число -100100011.0110 представляется в двоичном дополнительном коде как 1,111111011011100.10011

Сложим числа 0000000101000001.11110 и 1111111011011100.10011

В 1-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 2-й разряд.

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0





































1





0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

1

1

1

1

0

1

1

1

1

1

1

1

0

1

1

0

1

1

1

0

0

1

0

0

1

1







































0

1

В 2-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 3-й разряд.