Краткое пояснение: Для вычитания двоичных чисел необходимо привести их к одному разряду (добавить ведущие нули) и выполнить поразрядное вычитание, занимая разряд при необходимости.
Пошаговое решение:
- Переведем числа в десятичную систему для проверки (необязательно, но полезно):
- 101110₂ = 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 0*1 = 32 + 8 + 4 + 2 = 46₁₀
- 1011₂ = 1*8 + 0*4 + 1*2 + 1*1 = 8 + 2 + 1 = 11₁₀
- 46 - 11 = 35₁₀
- Выравнивание разрядов:
101110₂
- 001011₂ - Поразрядное вычитание:
101110₂
- 001011₂
----------
100101₂ - Проверка перевода результата в десятичную систему:
100101₂ = 1*32 + 0*16 + 0*8 + 1*4 + 0*2 + 1*1 = 32 + 4 + 1 = 37₁₀ - Ошибка в ручном подсчете. Пересчитаем:
101110₂
- 001011₂
----------
100101₂
6-1 = 1 (0-1 = -1, занимаем)
10-1 = 1
0-1 = -1 (занимаем)
10-1 = 1
0-0 = 0
1-0 = 1
0-0 = 0
Получаем 100101. Проверим еще раз.
101110 (46)
01011 (11)
0
0
1
0
0
1
----
100101 (37).
Проверка: 101110₂ = 46₁₀. 1011₂ = 11₁₀. 46 - 11 = 35₁₀. Результат 100101₂ = 37₁₀. Есть ошибка.
Еще раз вычтем:
101110
- 001011
----------
0
1
0
1
0
1
100101 - неверно
101110
- 001011
----------
1 (0-1, занимаем 10-1=1)
0 (1-1=0)
1 (1-0=1)
0 (1-1=0)
0 (0-0=0)
1 (1-0=1)
100101
Вернемся к десятичной системе:
46
-11
---
35
35 в двоичной:
35 / 2 = 17 ост 1
17 / 2 = 8 ост 1
8 / 2 = 4 ост 0
4 / 2 = 2 ост 0
2 / 2 = 1 ост 0
1 / 2 = 0 ост 1
Читаем снизу вверх: 100011₂. Теперь проверим этот ответ.
101110₂ = 46₁₀
1011₂ = 11₁₀
100011₂ = 1*32 + 0*16 + 0*8 + 0*4 + 1*2 + 1*1 = 32 + 2 + 1 = 35₁₀. Это верно.
Теперь выполним вычитание в двоичной системе еще раз:
101110
- 001011
----------
1 (0-1, занимаем, 10-1=1)
10 (1-1=0, но мы заняли, значит 0, занимаем 10-1=1)
00 (1-0=1, но мы заняли, значит 0)
11 (1-1=0)
00 (0-0=0)
10 (1-0=1)
100011.
Ответ: 100011₂