Смекни!
smekni.com

Методические указания для проведения лабораторной работы Томск 2009 (стр. 2 из 4)

622 16
48 38 16
142 32 2→2
128 6→6
14→E

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

0 3125
8
2 5000
8
4 0000

Перевести

с.с.

Результат

.

Замечание. Конечной десятичной дроби в другой системе счисления может соответствовать бесконечная (иногда периодическая) дробь. В этом случае количество знаков в представлении дроби в новой системе берется в зависимости от требуемой точности.

Пример:

0 65´ 2
1 3 ´ 2
0 6 ´ 2
1 2 ´ 2
0 4 ´ 2
0 8 ´ 2
1 6 ´ 2
. . .

Перевести

с.с.

Точность 6 знаков. Результат

.

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

Перевести

с.с.
1) Переведем целую часть: 2) Переведем дробную часть:
23 2
22 11 2
1 10 5 2
1 4 2 2
1 2 1
0
0 125
2
0 25
2
0 5
2
1 0

Таким образом

;
.

Результат:

.

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

Приложение 3

Двоичная арифметика целых чисел.

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

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

Таблица 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= 101 Y = – 101

X+Y= 10010 X-Y = 1101

Вычислить X

Y. Вычислить X:Y.
110001.1 1001
1001 101.1
1101
­– 1001
1001 – 1001
0

X= 1001

Y=

101

1001

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 в прямой, обратный и дополнительный коды. Сложить их в обратном и дополнительном кодах. Результат перевести в прямой код. Проверить полученный результат, пользуясь правилами двоичной арифметики.

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