
- •Лабораторная работа №2 Системы счисления Зарождение и история развития систем счисления.
- •Позиционные и непозиционные системы счисления
- •Представление чисел с фиксированной и плавающей запятой
- •Перевод целых чисел из одной позиционной системы счисления в другую
- •Выполнение арифметических операций в разных системах счисления
- •Представление целых чисел в эвм
- •Задания для самостоятельного решения
- •32. Найти основание системы счисления, в которой справедливо данное равенство; определить неизвестные цифры, отмеченные звездочками.
Выполнение арифметических операций в разных системах счисления
В позиционных системах счисления основные арифметические операции (сложение, вычитание, умножение и деление) выполняются по тем же правилам, что и в десятичной системе счисления. Особенностью выполнения вычислений является лишь то, что перенос в старший разряд осуществляется тогда, когда результат оказывается больше или равен основанию данной системы.
Рассмотрим некоторые арифметические операции в двоичной системе счисления. В этой системе существуют следующие правила сложения и вычитания:
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.