Домой Спорт и фитнес Арифметические операции в двоичной системе счисления задания. Сложение двоичных чисел

Арифметические операции в двоичной системе счисления задания. Сложение двоичных чисел

Задания на определение значений в различных системах счисления и их оснований

Задание 1. Для кодирования символов @, $, &, % используются двухразрядные последовательные двоичные числа. Первому символу соответствует число 00. С помощью данных символов была закодирована такая последовательность: $%&&@$. Декодируйте данную последовательность и переведите результат в шестнадцатеричную систему счисления.

Решение.

1. Сопоставим двоичные числа кодируемым ими символам:
00 — @, 01 — $, 10 — &, 11 — %

3. Переведем двоичное число в шестнадцатеричную систему счисления:
0111 1010 0001 = 7A1

Ответ. 7A1 16 .

Задание 2. В саду 100 x фруктовых деревьев, из которых 33 x – яблони, 22 x …
– груши, 16 x – сливы, 17 x — вишни. Чему равно основание системы счисления (x).

Решение.

1. Заметим, что все слагаемые – двузначные числа. В любой системе счисления их можно представить так:
a * x 1 + b * x 0 = ax + b, где a и b – это цифры соответствующих разрядов числа.
Для трехзначного числа будет так:
a * x 2 + b * x 1 + c * x 0 = ax 2 + bx + c

2. Условие задачи таково:
33 x + 22 x + 16 x + 17 x = 100 x
Подставим числа в формулы:
3x + 3 + 2x +2 + 1x + 6 + 1x + 7 = 1x 2 + 0x + 0
7x + 18 = x 2

3. Решим квадратное уравнение:
-x2 + 7x + 18 = 0
D = 7 2 – 4 * (-1) * 18 = 49 + 72 = 121. Квадратный корень из D равен 11.
Корни квадратного уравнения:
x = (-7 + 11) / (2 * (-1)) = -2 или x = (-7 — 11) / (2 * (-1)) = 9

4. Отрицательное число не может быть основанием системы счисления. Поэтому x может быть равен только 9.

Ответ. Искомое основание системы счисления равно 9.

Задание 3. В системе счисления с некоторым основанием десятичное число 12 записывается как 110. Найдите это основание.

Решение.

Сначала распишем число 110 через формулу записи чисел в позиционных системах счисления для нахождения значения в десятичной системе счисления, а затем найдем основание методом перебора.

110 = 1 * x 2 + 1 * x 1 + 0 * x 0 = x 2 + x

Нам надо получить 12. Пробуем 2: 2 2 + 2 = 6. Пробуем 3: 3 2 + 3 = 12.

Значит основание системы счисления равно 3.

Ответ. Искомое основание системы счисления равно 3.

Шестнадцатеричная и восьмеричная системы счисления

Задание 1. Какому числу в шестнадцатеричной системе счисления соответствует число 11000101?

Решение.

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

11000101 = 1100 0101 = С5 16

Нет необходимости иметь таблицу соответствия перед глазами. Двоичный счет 15 первых чисел можно осуществить в уме или последовательно расписать. При этом не следует забывать, что 10 в десятичной системе соответствует A в шестнадцатеричной, 11 – B, 12 – C, 13 – D, 14 – E, 15 – F.

Ответ. 11000101 = С5 16

Задание 2. Вычислите сумму двоичных чисел x и y, при x = 10100 и y = 10101. Результаты представьте в виде восьмеричного числа.

Решение.

Сложим два числа. Правила двоичной и десятичной арифметики одинаковы:

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

Ответ. Сумма двоичных чисел 10100 и 10101, представленная в восьмеричной системе счисления равна 51.

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

Задание 1. Чему равно число 37 в двоичной системе счисления?

Решение.

Можно выполнить преобразование делением на 2 и комбинацией остатков в обратном порядке.

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

37 10 = 32 + 4 + 1 = 2 5 + 2 2 + 2 0 = 1 * 2 5 + 0 * 2 4 + 0 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 100101

Ответ. 37 10 = 100101 2 .

Задание 2. Сколько значащих нулей в двоичной записи десятичного числа 73?

Решение.

Разложим число 73 на сумму степеней двойки, начиная со старшей и умножая пропущенные степени в дальнейшем на нули, а существующие на единицу:

73 10 = 64 + 8 + 1 = 2 6 + 2 3 + 2 0 = 1 * 2 6 + 0 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 1001001

Ответ. В двоичной записи десятичного числа 73 присутствует четыре значащих нуля.

Задание 3. Вычислите сумму чисел x и y при x = D2 16 , y = 37 8 . Результат представьте в двоичной системе счисления.

Решение.

Вспомним, что каждая цифра шестнадцатеричного числа формируется четырьмя двоичными разрядами, каждая цифра восьмеричного числа – тремя:

D2 16 = 1101 0010
37 8 = 011 111

Сложим полученные числа:

Ответ. Сумма чисел D2 16 и y = 37 8 , представленная в двоичной системе счисления равна 11110001.

Задание 4. Дано: a = D7 16 , b = 331 8 . Какое из чисел c , записанных в двоичной системе счисления, отвечает условию a < c < b ?

  1. 11011001
  2. 11011100
  3. 11010111
  4. 11011000

Решение.

Переведем числа в двоичную систему счисления:

D7 16 = 11010111
331 8 = 11011001

Первые четыре разряда у всех чисел совпадают (1101). Поэтому сравнение упрощается до сравнения младших четырех разрядов.

Первое число из перечня равно числу b , следовательно, не подходит.

Второе число больше как b . Третье число равно a .

Только четвертое число подходит: 0111 < 1000 < 1001.

Ответ. Четвертый вариант (11011000) отвечает условию a < c < b .

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

Задание 1. Какому числу в десятичной системе счисления соответствует число 24 16 ?

Решение.

24 16 = 2 * 16 1 + 4 * 16 0 = 32 + 4 = 36

Ответ. 24 16 = 36 10

Задание 2. Известно, что X = 12 4 + 4 5 + 101 2 . Чему равно число X в десятичной системе счисления?

Решение.


12 4 = 1 * 4 1 + 2 * 4 0 = 4 + 2 = 6
4 5 = 4 * 5 0 = 4
101 2 = 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 4 + 0 + 1 = 5
Находим число: X = 6 + 4 + 5 = 15

Ответ. X = 15 10

Задание 3. Вычислите значение суммы 10 2 + 45 8 + 10 16 в десятичной системе счисления.

Решение.

Переведем каждое слагаемое в десятичную систему счисления:
10 2 = 1 * 2 1 + 0 * 2 0 = 2
45 8 = 4 * 8 1 + 5 * 8 0 = 37
10 16 = 1 * 16 1 + 0 * 16 0 = 16
Сумма равна: 2 + 37 + 16 = 55

Ответ. 55 10

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

Системы счисления

Номер темы:

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

Сложение

Сложение одноразрядных двоичных чисел выполняется по следующим правилам:

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

Сложим для примера два любых двоичных числа:

Вычитание

Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:

0 — 1 = (заем из старшего разряда) 1

Умножение

Умножение одноразрядных двоичных чисел выполняется по следующим правилам:

Деление

Деление выполняется так же как в десятичной системе счисления:

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

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

11100011 2 =1*2 7 +1*2 6 +1*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =128+64+32+2+1=227 10

0,10100011 2 =1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 ++0*2 -6 +1*2 -7 +1*2 -8 =0.5+0.125+0.0078+0.0039=0.6367

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

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

а) целое десятичное число делится нацело на основание 2, затем на 2 делятся последовательно все частные от целочисленного деления, до тех пор пока частное не станет меньше основания. В результат заносится последнее частное и все остатки от деления, начиная с последнего. Например:

перевести число 227 в двоичную форму:

227:2=113 (записываем в результат остаток от деления 1), 113:2=56 (записываем в результат остаток от деления 1), 56:2=28 (записываем в результат остаток от деления 0), 28:2=14 (записываем в результат остаток от деления 0), 14:2=7 (записываем в результат остаток от деления 0), 7:2=3 (записываем в результат остаток от деления 1), 3:2=1 (записываем в результат остаток от деления 1), записываем в результат последнее частное – 1. Итого получаем: 227 10 =11100011 2 . Проверим обратным переводом:

1*2 0 +1*2 1 +0*2 2 +0*2 3 +0*2 4 +1*2 5 +1*2 6 +1*2 7 =1+2+32+64+128=227

б) десятичная дробь последовательно умножается на основание 2, причем сразу после каждой операции умножения полученная целая часть записывается в результат и в дальнейшем умножении не участвует (отбрасывается). Количество операций умножения зависит от требуемой точности, например:

переведем в двоичную форму число 0.64:

0.64*2=1.28 (отбрасываем 1 и записываем в результат 1)

0.28*2=0.56 (записываем в результат 0)

0.56*2=1.12 (отбрасываем 1 и записываем в результат 1)

0.12*2=0.24 (записываем в результат 0)

0.24*2=0.48 (записываем в результат 0)

0.48*2=0.96 (записываем в результат 0)

0.96*2=1.82 (записываем в результат 1)

Итого: 0.64 10 =0.1010001 2

Проверим обратным переводом:

1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 +0*2 -6 +1*2 -7 = 0.5*0+0.125+0+0+0+0.0078=0.6328

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

Следует иметь в виду, что в памяти ЭВМ двоичные числа хранятся в регистрах, состоящих из 8 ячеек, т.е. минимальное двоичное число, которое можно разместить в памяти, должно быть восьмиразрядным. При этом в незаполненных ячейках регистра (в старших разрядах) записываются нули.

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

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

1 – число отрицательное, 0 – число положительное.

Остальные разряды отводятся под абсолютную величину числа.

5 10 = 0000 0101 2 ; -5 10 =1000 0101 2 .

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

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

1) Отбросить знаковый разряд;

2) инвертировать все разряды числа;

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

4) восстановить единицу в знаковом разряде.
Например:

Преобразование числа -5 10

Записываем в двоичном виде: 1000 0101; отбрасываем знаковый разряд: 000 0101; инвертируем все разряды: 111 1010; прибавляем единицу: 111 1010 + 1 = 111 1011; восстанавливаем единицу в знаковом разряде: 1111 1011. Итого -5 10 в обратном дополнительном коде записывается как 1111 1011.

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

Сложение. Операция сложения выполняется так же, как и в десятичной системе. Переполнение разряда приводит к появлению единицы в следующем разряде:

0+0=0, 0+1=1, 1+1=10;

+ 111011

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

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

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

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

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

Например, выполним действие 13-15=13+(-15)

1. Переводим -15 в форму дополнительного кода:

1000 1111 –> 000 1111 -> 111 0000 -> 111 0000 +1=111 0001 -> 1111 0001

2. Складываем 13 и -15:

+11110001

3. Переводим в обычную двоичную форму:

1111 1110 -> 111 1110 ->000 0001 -> 000 0001+1=000 0010 -> 1000 0010 = -2 10

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

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

Например, выполним действие: 15-13=15+(-13)

1. Переводим -13 в форму дополнительного кода:

1000 1101 –> 000 1101 -> 111 0010 -> 111 0010 +1=111 0011 -> 1111 0011

2. Складываем 15 и -13:

+11110011

3. Знаковый разряд равен 0, обратный перевод не требуется, т. е. результат 0000 0010=2 10

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

Например, умножим 6 (0000 0110) на 5 (0000 0101):

*00000101

(умножаем на 1) +00000110

(умножаем на 0) 1

(умножаем на 1) +0000011011

Проверим: 0001 1110=0*2 0 +1*2 1 +1*2 2 +1*2 3 +1*2 4 =2+4+8=16=30

Например, умножим 15 (0000 1111) на 13 (0000 1101):

*00001101

(умножаем на 1) +00001111

(умножаем на 0) 1

(умножаем на 1) +0000111111

(умножаем на 1) +00001111111

Проверим: 1100 0011=1*2 7 +1*2 6 +0*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =1+2+64+128=195

Деление. При выполнении операции деления несколько раз производится операция вычитания. Поэтому предварительно следует найти дополнительный код делителя. Деление выполняется путем повторного вычитания и сдвига. Для примера выполним деление числа 195 (1100 0011) на 15 (0000 1111). Дополнительный код числа 0000 1111 -> 11110001. Поскольку по правилам деления каждое промежуточное делимое должно быть больше делителя, выбираем в качестве первого делимого число 11000, т.е. первые пять разрядов и добавляем слева три нуля, дополняя делимое до 8 разрядов. Затем производим сложение его с дополнительным кодом делимого и заносим в результат единицу. Если следующее делимое после сноса очередной цифры будет меньше делителя, то в результат заносится нуль и в делимое сносится еще одна цифра из исходного делимого.

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

Вместе с этим калькулятором также используют следующие:
Перевод чисел в двоичную, шестнадцатеричную, десятичную, восьмеричную системы счисления
Умножение двоичных чисел
Формат представления чисел с плавающей запятой
Пример №1 . Представить число 133,54 в форме числа с плавающей точкой.
Решение . Представим число 133.54 в нормализованном экспоненциальном виде:
1.3354*10 2 = 1.3354*exp 10 2
Число 1.3354*exp 10 2 состоит из двух частей: мантиссы M=1.3354 и экспоненты exp 10 =2
Если мантисса находится в диапазоне 1 ≤ M Представление числа в денормализованном экспоненциальном виде .
Если мантисса находится в диапазоне 0,1 ≤ M Представим число в денормализованном экспоненциальном виде: 0.13354*exp 10 3

Пример №2 . Представить двоичное число 101.10 2 в нормализованном виде, записать в 32-битом стандарте IEEE754.
Таблица истинности


Вычисление пределов

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

Арифметические действия в двоичной системе выполняются так же, как и в десятичной. Но, если в десятичной системе счисления перенос и заём осуществляется по десять единиц, то в двоичной - по две единицы. В таблице представлены правила сложения и вычитания в двоичной системе счисления.
  1. При сложении в двоичной системе системе счисления двух единиц в данном разряде будет 0 и появится перенос единицы в старший разряд.
  2. При вычитании из нуля единицы производится заём единицы из старшего разряда, где есть 1 . Единица, занятая в этом разряде, даёт две единицы в разряде, где вычисляется действие, а также по единице, во всех промежуточных разрядах.

Сложение чисел с учетом их знаков на машине представляет собой последовательность следующих действий:

  • преобразование исходных чисел в указанный код;
  • поразрядное сложение кодов;
  • анализ полученного результата.
При выполнении операции в обратном (модифицированном обратном) коде если в результате сложения в знаковом разряде возникает единица переноса, она прибавляется к младшему разряду суммы.
При выполнении операции в дополнительном (модифицированном дополнительном) коде если в результате сложения в знаковом разряде возникает единица переноса, она отбрасывается.
Операция вычитания в ЭВМ выполняется через сложение по правилу: Х-У=Х+(-У). Дальнейшие действия выполняются также как и для операции сложения.

Пример №1 .
Дано: х=0,110001; y= -0,001001, сложить в обратном модифицированном коде.

Дано: х=0,101001; y= -0,001101, сложить в дополнительном модифицированном коде.

Пример №2 . Решить примеры на вычитание двоичных чисел, используя метод дополнения до 1 и циклического переноса.
а) 11 - 10.
Решение .
Представим числа 11 2 и -10 2 в обратном коде.

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

Сложим числа 00000011 и 11111101

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

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

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

В итоге получаем:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

Возник перенос из знакового разряда. Добавим его (т.е. 1) к полученному числу (тем самым осуществляя процедуру циклического переноса).
В итоге получаем:
7 6 5 4 3 2 1 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

Результат сложения: 00000001. Переведем в десятичное представление . Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Результат сложения (в десятичном представлении): 1

б) 111-010 Представим числа 111 2 и -010 2 в обратном коде.
Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Двоичное число 0000111 имеет обратный код 0,0000111
Двоичное число 0000010 имеет обратный код 1,1111101
Сложим числа 00000111 и 11111101
В 0-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 1-й разряд.

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

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

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

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

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

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

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

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

В итоге получаем:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

Возник перенос из знакового разряда. Добавим его (т.е. 1) к полученному числу (тем самым осуществляя процедуру циклического переноса).
В итоге получаем:
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

Результат сложения: 00000101
Получили число 00000101. Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Результат сложения (в десятичном представлении): 5

Сложение двоичных вещественных чисел с плавающей запятой

В компьютере любое число может быть представлено в формате с плавающей точкой. Формат с плавающей точкой показан на рисунке:


Например, число 10101 в формате с плавающей точкой можно записать так:


В компьютерах используется нормализованная форма записи числа, в которой положение запятой всегда задается перед значащей цифрой мантиссы, т.е. выполняется условие:
b -1 ≤|M|Нормализованное число - это число, у которого после запятой идет значащая цифра (т.е. 1 в двоичной системе счисления). Пример нормализации:
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

При сложении чисел с плавающей точкой выравнивание порядков выполняют в сторону большего порядка:

Алгоритм сложения чисел с плавающей точкой:

  1. Выравнивание порядков;
  2. Сложение мантисс в дополнительном модифицированном коде;
  3. Нормализация результата.

Пример №4 .
A=0,1011*2 10 , B=0,0001*2 11
1. Выравнивание порядков;
A=0,01011*2 11 , B=0,0001*2 11
2. Сложение мантисс в дополнительном модифицированном коде;
MA доп.мод. =00,01011
MB доп.мод. =00,0001
00,01011
+ 00,00010
=
00,01101
A+B=0,01101*2 11
3. Нормализация результата.
A+B=0,1101*2 10

Пример №3 . Записать десятичное число в двоично-десятичной системе счисления и сложить два числа в двоичной системе счисления.

Сложение. В основе сложения чисел в двоичной системе счисления лежит таблица сложения одноразрядных двоичных чисел (табл. 6).

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

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

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

Вычитание. В основе вычитания двоичных чисел лежит таблица вычитания одноразрядных двоичных чисел (табл. 7).

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

Вычитание многоразрядных двоичных чисел реализуется в соответствии с этой таблицей с учетом возможных заемов в старших разрядах.

Для примера произведем вычитание двоичных чисел :

Умножение. В основе умножения лежит таблица умножения одноразрядных двоичных чисел (табл. 8).

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

Примечание: При сложении двух чисел, равных 1, в данном разряде получается 0, а 1-ца переносится в старший разряд.

Пример_21 : Даны числа 101 (2) и 11 (2) . Найти сумму этих чисел.

где 101 (2) = 5 (10) , 11 (2) = 3 (10) , 1000 (2) = 8 (10) .

Проверка: 5+3=8.

При вычитании из 0 единицы, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 2 единицы в младшем разряде и по единице во всех разрядах между старшим и младшим.

Пример_22 : Даны числа 101 (2) и 11 (2) . Найти разность этих чисел.

где 101 (2) =5 (10) , 11 (2) =3 (10) , 10 (2) =2 (10) .

Проверка: 5-3=2.

Операция умножения сводится к многократному сдвигу и сложению.

Пример_23 : Даны числа 11 (2) и 10 (2) . Найти произведение этих чисел.

где 11 (2) =3 (10) , 10 (2) =2 (10) , 110 (2) =6 (10) .

Проверка: 3*2=6.

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

При сложении двух чисел, в сумме равных 8, в данном разряде получается 0, а 1-ца переносится в старший разряд.

Пример_24 : Даны числа 165 (8) и 13 (8) . Найти сумму этих чисел.

где 165 (8) = 117 (10) , 13 (8) = 11 (10) , 200 (8) = 128 (10) .

При вычитании из меньшего числа большего, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 8 в младшем разряде.

Пример_25 : Даны числа 114 (8) и 15 (8) . Найти разность этих чисел.

где 114 (8) =76 (10) , 15 (8) =13 (10) , 77 (8) =63 (10) .

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

При сложении двух чисел, в сумме равных 16, в данном разряде записывают 0, а 1-ца переносят в старший разряд.

Пример_26 : Даны числа 1B5 (16) и 53 (16) . Найти сумму этих чисел.

где 1B5 (16) = 437 (10) , 53 (16) = 83 (10) , 208 (16) = 520 (10) .

При вычитании из меньшего числа большего, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 16 в младшем разряде.

Пример_27 : Даны числа 11A (16) и 2C (16) . Найти разность этих чисел.

где 11A (16) =282 (10) , 2C (16) =44 (10) , EE (16) =238 (10) .

Кодирование данных в ЭВМ

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

Код – набор условных обозначений для представления информации. Кодирование – процесс представления информации в виде кода.

Коды чисел

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

Прямой код

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

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

Целые числа без знака обычно занимают в памяти один или два байта. Для хранения целых чисел со знаком отводится один, два или четыре байта, при этом старший (крайний левый) разряд отводится под знак числа. Если число положительное, то в этот разряд записывается 0, если отрицательное,- то 1.

Пример_28 :

1 (10) =0 000 0001 (2) , -1 (10) =1 000 0001 (2)


Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда.

Прямой код используется при хранении чисел в памяти ЭВМ, а также при выполнении операций умножения и деления, но формат представления чисел в прямом коде неудобен для использования в вычислениях, поскольку сложение и вычитание положительных и отрицательных чисел выполняется по–разному, а потому требуется анализировать знаковые разряды операндов. Поэтому прямой код практически не применяется при реализации в АЛУ арифметических операций над целыми числами. Но отрицательные целые числа не представляются в ЭВМ с помощью прямого кода. Вместо этого формата широкое распространение получили форматы представления чисел в обратном и дополнительном кодах.

Обратный код

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

Пример_29 :

Пример_30 :

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

Дополнительный код

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

Пример_31 :

Пример_32 :

Пример_33 :

Для целого числа -32 (10) записать дополнительный код.

1. После перевода числа 32 (10) в двоичную систему счисления получим:

32 (10) =100000 (2) .

2. Прямой код положительного числа 32 (10) равен 0010 0000.

3. Для отрицательного числа -32 (10) прямой код равен 1010 0000.

4. Обратный код числа -32 (10) равен 1101 1111.

5. Дополнительный код числа -32 (10) равен 1110 0000.

Пример_34 :

Дополнительный код числа равен 0011 1011. Найти значение числа в десятичной системе счисления.

1. Первый (знаковый) разряд числа 0 011 1011 равен 0, следовательно, число положительное.

2. У положительного числа дополнительный, обратный и прямой код совпадают.

3. Число в двоичной системе счисления получаем из записи прямого кода – 111011 (2) (нули из старших разрядов отбрасываем).

4. Число 111011 (2) после перевода в десятичную систему счисления равно 59 (10) .

Пример_35 :

Дополнительный код числа равен 1011 1011. Найти значение числа в десятичной системе счисления.

1. Знаковый разряд числа 1 011 1011 равен 1, следовательно, число отрицательное.

2. Для определения обратного кода числа из дополнительного кода вычитаем единицу. Обратный код равен 1 011 1010.

3. Прямой код получаем из обратного заменой всех двоичных цифр числа на противоположные (1 на 0, 0 на 1). Прямой код числа равен 1 100 0101 (в знаковом разряде записываем 1).

4. Число в двоичной системе счисления получаем из записи прямого кода – -100 0101 (2) .

4. Число -1000101 (2) после перевода в десятичную систему счисления равно -69 (10) .


Похожая информация.


Новое на сайте

>

Самое популярное