Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2.doc
Скачиваний:
40
Добавлен:
11.02.2015
Размер:
155.65 Кб
Скачать

Выполнение арифметических операций в разных системах счисления

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

Рассмотрим некоторые арифметические операции в двоичной системе счисления. В этой системе существуют следующие правила сложения и вычитания:

1+1=10 10-1=1

1+0=1 10-10=0

0+0=0 10-0=10

Разбор заданий

Сложить два числа в двоичной системе счисления А и В.

А=1101001; В=1011101111

+ 1011101111

1101001

1101011000

Проверим правильность сложения: вычтем из суммы А и В число В.

_1101011000

1011101111

1101001

3. Найти сумму чисел А и В в восьмеричной системе счисления

А=567448; В=27658

+ 56744

2765

61731

4.Проверим правильность сложения: вычтем из суммы А и В число В.

_ 61731

2765

567448

5. Найти сумму чисел А и В в шестнадцатеричной системе счисления

А=960А7416; В=В7685Е16

+96 0А7416

В7685Е16

14D72D216

6.Проверим правильность сложения: вычтем из суммы А и В число В.

_14D72D216

В7685Е16

960A7416

Представление целых чисел в эвм

В компьютерах для кодирования целых чисел используется двоичная система счисления. Одна двоичная цифра называется бит. Для хранения чисел используется фиксированное число бит: 8, 16 или 32. В дальнейшем будем считать, что размер ячейки памяти равен 16 битам.

Для того чтобы отличать отрицательные числа от положительных, самый правый разряд отводится под знак числа – он называется знаковым. Для положительных чисел знаковый разряд равен 0, для отрицательных равен 1. Этот разряд отделяется от других двоеточием.

4510– десятичное число,

01011012– число “45” в двоичной системе счисления,

[0:000000000101101]пр– “45” в прямом коде, знаковый бит равен 0.

4510= 01011012= [0:000000000101101]пр.

-01011012– число “-45” в двоичной системе счисления,

[1:000000000101101]пр– “-45” в прямом коде, знаковый бит равен 1.

-4510= -01011012= [1:000000000101101]пр.

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

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

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

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

Например:

-01000112– число “-35” в двоичной системе счисления,

[1:000000000100011]пр– “-35” в прямом коде, знаковый бит равен 1.

[1:111111111011100]обр– “-35” в обратном коде,

[1:111111111011101]доп – “-35” в дополнительном коде.

-3510=-01000112=[1:000000000100011]пр=[1:111111111011100]обр= [1:111111111011101]доп.

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

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

Правило перевода отрицательного числа из дополнительного кода в прямой код: для того чтобы перевести отрицательное число из дополнительного кода в прямой, надо от дополнительного кода этого числа отнять 1, а потом заменить все биты, кроме знакового, на противоположные.

[1:111111101001100]доп. =

= [1:111111101001011]обр=

= [1:000000010110100]пр=

= -10110100 = -18010.

Действия над целыми числами.

Разбор заданий

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

Например: A10 = 43, B10 = 27,

Найти C = A + B, D = -A - B, E = A - B, F = - A + B.

1. Представление чисел A и B в двоичной системе счисления в прямом коде:

4310= 1010112,

A = [0:000000000101011]пр,

2710= 110112,

B = [0:000000000011011]пр,

2. Представление чисел -A и -B в двоичной системе счисления в дополнительном коде:

-A = [1:000000000101011]пр= [1:111111111010100]обр = [1:111111111010101]доп

-B = [1:000000000011011] пр= [1:111111111100100]обр = [1:111111111100101]доп.

3. Выполнение действий (знаковый бит участвует в выполнении сложения): C = A + B

A= [0:000000000101011] пр,

B= [0:000000000011011] пр,

C= [0:000000001000110] пр,

С = 10001102.

Проверим: С = 43 + 27 = 7010, С = 10001102= 7010.

D= -A-B= - (A+B),

A = [0:000000000101011] пр,

B = [0:000000000011011] пр,

D* = [0:000000001000110] пр,

D = -D* = -10001102.

Проверим: D = -43 - 27 = -7010, D = -10001102= -7010.

E=A-B,

A = [0:000000000101011] пр,

-B = [1:111111111100101] доп,

E = [0:000000000010000] пр,

E= 100002.

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

Проверим: E = 43 - 27 = 1610, E = 100002= 1610.

F= -A+B,

-A = [1:111111111010101] доп,

B = [0:000000000011011] пр,

F = [1:111111111110000] доп,

Так знаковый бит результата равен 1, значит результат отрицательный в дополнительном коде. Необходимо представить результат в прямом коде.

F = [1:111111111110000] доп= [1:000000000001111]обр= [1:000000000010000]пр.

F = -100002.

Проверим: F = -43 + 27 = -1610, F = -100002= -1610.