Двоичные числа
Обратный и дополнительный коды двоичных чисел
Прямой код
1 0 1 0 0 1
Обратный код
0 1 0 1 1 0
Дополнительный код
0 1 0 1 1 1
Решить онлайн
Примеры решений Перевод дробных чисел Формат с плавающей точкой Перевести в 2 систему Перевод в 8 систему Перевод в 10 систему Дополнительный код Сложение двоичных чисел Умножение двоичных чисел

Сложение двоичных чисел

Назначение сервиса. Онлайн-калькулятор предназначен для сложения двоичных чисел в прямом, обратном и дополнительном кодах.
Число №1
Число №2
Числа представлены в системе счисления.
Операция с числами Для дробных чисел использовать знака после запятой.
Действие производить в: Подробнее.
Вместе с этим калькулятором также используют следующие:
Перевод чисел в двоичную, шестнадцатеричную, десятичную, восьмеричную системы счисления


Умножение двоичных чисел


Формат представления чисел с плавающей запятой

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

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


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

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

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

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

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

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

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

Пример №2. Решить примеры на вычитание двоичных чисел, используя метод дополнения до 1 и циклического переноса.
а) 11 - 10.
Решение.
Представим числа 112 и -102 в обратном коде.
Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Двоичное число 0000011 имеет обратный код 0,0000011
Двоичное число 0000010 имеет обратный код 1,1111101
Сложим числа 00000011 и 11111101
В 0-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 1-й разряд.

76543210
1
00000011
11111101
0

В 1-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 2-й разряд.
76543210
11
00000011
11111101
00

В 2-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 3-й разряд.
76543210
111
00000011
11111101
000

В 3-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 4-й разряд.
76543210
1111
00000011
11111101
0000

В 4-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 5-й разряд.
76543210
11111
00000011
11111101
00000

В 5-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 6-й разряд.
76543210
111111
00000011
11111101
000000

В 6-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 7-й разряд.
76543210
1111111
00000011
11111101
0000000

В 7-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 8-й разряд.
76543210
1111111
00000011
11111101
00000000

В итоге получаем:
76543210
1111111
00000011
11111101
00000000

Возник перенос из знакового разряда. Добавим его (т.е. 1) к полученному числу (тем самым осуществляя процедуру циклического переноса).
В итоге получаем:
76543210
00000000
00000001
00000001

Результат сложения: 00000001. Переведем в десятичное представление. Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
00000001 = 27*0 + 26*0 + 25*0 + 24*0 + 23*0 + 22*0 + 21*0 + 20*1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Результат сложения (в десятичном представлении): 1

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

76543210
1
00000111
11111101
0

В 1-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 2-й разряд.
76543210
11
00000111
11111101
00

В 2-ом разряде возникло переполнение (1 + 1 + 1 = 11). Поэтому записываем 1, а 1 переносим на 3-й разряд.
76543210
111
00000111
11111101
100

В 3-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 4-й разряд.
76543210
1111
00000111
11111101
0100

В 4-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 5-й разряд.
76543210
11111
00000111
11111101
00100

В 5-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 6-й разряд.
76543210
111111
00000111
11111101
000100

В 6-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 7-й разряд.
76543210
1111111
00000111
11111101
0000100

В 7-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 8-й разряд.
76543210
1111111
00000111
11111101
00000100

В итоге получаем:
76543210
1111111
00000111
11111101
00000100

Возник перенос из знакового разряда. Добавим его (т.е. 1) к полученному числу (тем самым осуществляя процедуру циклического переноса).
В итоге получаем:
76543210
00000100
00000001
00000101

Результат сложения: 00000101
Получили число 00000101. Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
00000101 = 27*0 + 26*0 + 25*0 + 24*0 + 23*0 + 22*1 + 21*0 + 20*1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Результат сложения (в десятичном представлении): 5

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

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

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

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

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

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

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

Учебно-методический
  • курсы переподготовки и повышения квалификации;
  • вебинары;
  • сертификаты на публикацию методического пособия
Подробнее
Яндекс 360 для бизнеса
  • Бесконечный почтовый ящик;
  • Объем облачного хранилища от 100 Гб;
  • Загрузка больших файлов — от 1 ГБ
  • Поддержка файлов MS Office
  • Трансляции и их планирование в календаре
Подробнее
Болит горло
Как быстро вылечить ангину, гланды, тонзиллит
Природные средства, проверенные временем и врачами
Подробнее
Курсовые на заказ