Перевод чисел из двоичной системы счисления в десятичную



Пример 2.2.1Перевести ранее найденные двоичные числа 1011112 (4710) и 0,010001112 (0,2810), а также 101011,11111012 (43,97810) в десятичные.

Решение. Пронумеруем разряды числа справа налево, начиная с нулевого. Вычислим сумму произведений степеней основания системы счисления и цифр числа. Получим:

1·25 + 0·24 + 1·23 + 1·22 + 1·21 + 1·20 = 32 + 8 + 4 + 2 + 1 = 4710

0,010001112 = 0·2-1 + 1·2-2 + 0·2-3 + 0·2-4 + 0·2-5 + 1·2-6 + 1·2-7 + 1·2-8 = 0,25 + 0,015625 +

+ 0,0078125 + 0,00390625 = 0,277310

101011,11111012 = 1·25 + 0·24 + 1·23 + 0·22 + 1·21 + 1·20 + 1·2-1 + 1·2-2 + 1·2-3 + 1·2-4 + 1·2-5 + 0·2-6 +

+1 2-7= 32 + 8 + 2 + 1 +  = 4310

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

Пример 2.3.1Возьмите первое исходное число (4) со знаком минус: -46 и представьте его в форме значения со знаком и в форме обратного дополнительного кода.

Решение. Форма значения со знаком:старший (левый) разряд отмечается как знаковый и содержит информацию о знаке числа. Остальные разряды отводятся под абсолютную величину числа.

1 – число отрицательное: –4610 = 1010 11102;

0 – число положительное: 4610 = 0010 11102.

Форма обратного дополнительного кода.Перевод производится по следующему алгоритму:

- инвертировать все разряды числа, кроме знакового разряда;

- прибавить единицу к полученному коду;

- восстановить единицу в знаковом разряде.

Таким образом, преобразование заданного числа:

-4610 = 1010 11102 = 101 0001+1 = 101 0010 = 1101 00102.

Основные свойства дополнительного кода:

- Дополнительный код положительного числа – само число.

- Преобразование дополнительного кода по приведенному алгоритму перевода приводит к первоначальному виду числа в знаковой форме.

Арифметические операции в двоичной системе счисления

Пример 2.4.1Возьмем первое (46) и второе (91) исходные числа, записанные в двоичной системе счисления и вычислим их сумму.

Решение.Операция сложения выполняется так же, как и в десятичной системе.

Заметим, что при двоичном сложении 1+1 возникает перенос единицы в старший разряд, как в десятичной арифметике: 0+0=0, 0+1=1, 1+1=10.

Найдем сумму исходных чисел:

+
0 1 0 1 1 1 0 (4610)

1 0 1 1 0 1 1 (9110)

1 0 0 0 1 0 0 1 (13710)

Пример 2.4.2 Возьмем первое (46) и второе (91) исходные числа, записанные в десятичной системе счисления и уменьшим их в m-раз, округлив до целого, так чтобы они находились в диапазоне от [5,20].

46/3 = 15,3 ≈ 15,

91/5 = 18,2 ≈ 18.

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

Решение.Правила умножения: 0∙0=0, 0∙1=0, 1∙0=0, 1∙1=1. Умножение двоичных чисел производится в столбик, аналогично умножению десятичных чисел, которое сводится к серии повторных сложений. Если цифра в нулевой позиции множителя равна 1, то множимое переписывается под соответствующими разрядами, умножение на последующие единицы приводит к сдвигу слагаемого влево на одну позицию. Если цифра множителя равна 0, то следующее слагаемое смещается на две позиции влево.

Ответ: 1510 ∙ 1810 = 27010 = 1 0000 11102;

1 0000 11102 = 1∙28 + 1∙23 + 1∙22 + 1∙21 = 256 + 8 + 4 + 2 = 27010

Пример 2.4.3 Возьмем первое (46) и второе (91) исходные числа, записанные в десятичной системе счисления. Переведем эти числа в двоичную систему счисления, и вычислим их разность.

Решение.Правила вычитания: 0-0=0, 1-0=1, 1-1=0, 10-1=1 (единица берется из старшего разряда). Операцию вычитания будем заменять операцией сложения:

91 – 46 = 91 + (-46).

Правила вычитания в двоичной системе:Алгоритм операции вычитания путем сложения дополнительных кодов:

1) преобразовать отрицательное число из формы со знаком в дополнительный код;

2) выполнить операцию двоичного сложения над всеми разрядами, включая знаковый, игнорируя единицу переноса из самого высокого разряда;

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

46 – 91 = 46 + (-91)

1) -9110 = 11 011 011 = 0 100 100 + 1 = 0 100 101 = 10 100 101

2)

3) 11 010 011 = 0 101 100 + 1 = 10 101 101 = -4510

Пример 2.4.4 Возьмем первое (46) и второе (91) исходные числа, записанные в десятичной системе счисления. Переведем эти числа в двоичную систему счисления, и вычислим их разность.

Решение.91-46 = 91 + (-46)

1) -4610 = 10101110 = 10101110 + 1 = 1010010 = 11010010

2)

Пример 2.4.5Выполнить деление числа 27010 на 1510 (или в двоичной системе счисления 1 0000 11102 на 11112).

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

Ответ: 000100102 = 1810


Дата добавления: 2018-05-12; просмотров: 855; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!