Теперь научимся делать некоторые арифметические действия в альтернативных системах счислениях уже в полноценных задачах.
Задача 1.4.1. Посчитайте столбиком в пятеричной системе 2342+5321. Ответ запишите в пятеричной системе.
Сложение осуществляется аналогично сложению в десятичной системе, но, поскольку цифр в пятеричной системе меньше, то перенос в старший разряд будет происходить в других случаях, чем в десятичной системе. Может понадобиться выписать таблицу соответствия десятичных и пятеричных чисел.
Целесообразно выписать начало таблицы с переводом из десятичной системы в пятеричную:
Десят. |
Пятер. |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
10 |
6 |
11 |
7 |
12 |
8 |
13 |
9 |
14 |
10 |
20 |
Начнем складывать столбиком: 2+1 посчитать не составит труда. Это будет 3 хоть в десятичной системе, хоть в пятеричной:
+ |
2 |
3 |
4 |
2 |
5 |
3 |
2 |
1 |
|
|
|
|
|
3 |
В десятичной системе 4+2=6. Но сложение не меняет результата, то есть, если мы посмотрим в таблицу, то 6-десятичное равно 11-пятеричному. 1 пишем и 1 переносится в следующий разряд:
|
|
1 |
|
|
+ |
2 |
3 |
4 |
2 |
5 |
3 |
2 |
1 |
|
|
|
|
1 |
3 |
Продолжаем вычисления. 1+3+3 в десятичном виде равно 7, то есть 12-пятеричному. 2 пишем, 1 переносится в следующий разряд:
|
1 |
1 |
|
|
+ |
2 |
3 |
4 |
2 |
5 |
3 |
2 |
1 |
|
|
|
2 |
1 |
3 |
Продолжаем вычисления и получаем ответ:
|
1 |
1 |
|
|
+ |
2 |
3 |
4 |
2 |
5 |
3 |
2 |
1 |
|
1 |
3 |
2 |
1 |
3 |
23425 + 53215 = 132135
Ответ: 13213
Задача 1.4.2. Посчитайте в двоичной системе счисления столбиком, чему равно 10110010010110 – 1011100101100. Ответ запишите в двоичной системе.
Вычитание столбиком в альтернативных системах аналогично вычитанию в десятичной, так же приходится занимать в высших разрядах, если происходит вычитание из меньшей цифры большей. Как показывает опыт, в двоичной системе вычитать тяжелее всего.
Вычитание первых трех разрядов не представляет труда, так как 0–0=0, 1–0=1, 1–1=0:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 |
Далее нужно занимать. Так как
102 = 210
То 102 – 12 = 210 – 110 = 110 = 12
|
|
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 |
1 |
0 |
Мы уже знаем, что степень двойки в двоичном виде представляет собой 1 и несколько нулей в количестве показателя степени, а число на 1 меньшее, чем степень двойки – это число, состоящее из одних единиц. Поэтому продолжаем вычитать, занимая:
|
|
|
|
|
|
|
* |
* |
|
* |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
Далее несколько сложнее:
|
|
|
|
* |
* |
|
* |
* |
|
* |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
Поскольку 1 мы уже заняли, надо занимать дальше:
|
|
|
* |
* |
* |
|
* |
* |
|
* |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
И заканчиваем вычисления:
|
* |
|
* |
* |
* |
|
* |
* |
|
* |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
Ответ: 1010101101010
В двоичной системе занимать в старших разрядах приходится значительно чаще, чем в других системах, и это может приводить к ошибкам. Поэтому есть «народный» способ, позволяющий уменьшить риск. Он заключается в том, что мы не обязаны делать вычитание за один раз. Можем делать его поэтапно. Возьмем сложный участок предыдущего примера:
101100–10111.
Распишем числа в виде сумм:
100000+1000+100–10000–100–10–1.
Мы можем сгруппировать, переставив слагаемые, сразу уберем 100–100:
100000-10000+1000–10–1.
Сделаем два вычитания:
10000+110–1.
Делаем последнее вычитание и получаем результат:
10000+101=10101.
Столбиком алгоритм вычисления выглядит так:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сперва обнуляем все единицы, которые стоят друг под другом:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Потом делим на секции, которые состоят из 1 и последовательности нулей в верхнем числе до 1 в нижнем:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Делаем вычитания там, где мы это умеем:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
1 |
0 |
1 |
1 |
|
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
И переписываем те разряды, которые мы еще не вычли:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
- |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
Повторяем алгоритм до тех пор, пока не останется разрядов для вычитания:
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
- |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
Ответ такой же.
Задача 1.4.3. Перемножьте двоичные числа 11101 и 10111. Ответ запишите в двоичной системе.
Умножение в двоичной системе осуществляется так же, как и в десятичной.
Умножение в двоичном виде начинается проще, чем в десятичном. Нам достаточно переписать верхнее число несколько раз со сдвигом:
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
Далее идет сложение. Поначалу оно не представляет труда. Переносы отмечены звездочками:
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
* |
* |
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
Когда единиц становится слишком много, то возникают проблемы. Нужно запомнить принцип: если единиц вместе с перенесенными (как это было в четвертом с конца столбце) нечетное количество, то пишем 1, если четное – то 0. Если в столбце две единицы, то одна единица переносится в следующий разряд (как это происходит в третьем и четвертом столбце). В пятом столбце вместе с переносом уже пять единиц. 1+1+1+1=100, поэтому перенос происходит через разряд:
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
* |
|
* |
* |
|
|
|
|
|
|
|
1 |
1 |
0 |
1 |
1 |
Продолжаем складывать дальше:
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
** |
|
* |
* |
|
|
|
|
|
|
0 |
1 |
1 |
0 |
1 |
1 |
Как видно, в один и тот же разряд может быть несколько переносов.
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
* |
|
** |
|
* |
* |
|
|
|
|
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
И заканчиваем:
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
X |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
|
|
* |
* |
|
** |
|
* |
* |
|
|
|
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
Ответ: 1010011011
Задача 1.4.4. Вычислите значение выражения 8416 = 1Е16. Ответ запишите в шестнадцатеричной системе счисления.
Будем вычислять столбиком:
8 3 |
+1 E |
|
Вычислим в десятичном виде 416 + Е16 = 410 + 1410 = 1810 = 1216. 2 пишем, 1 переносится в следующий разряд:
1 |
8 4 |
+1 E |
2 |
Продолжаем вычисление: 116 + 816 + 116 = 110 + 810 + 110 = 1010 = А16
1 |
8 3 |
+1 E |
А 2 |
Ответ: A2
Задача 1.4.5. Вычислите значение выражения 2А816 – 1С616. Ответ запишите в шестнадцатеричной системе счисления.
Вычислим столбиком:
2 А 8 |
- 1 С 6 |
|
8-6 вычисляется так же, как и в десятичном виде:
2 А 8 |
- 1 С 6 |
2 |
А16 – С16 = 1016 – 1216
Видно, что нужно занимать 1 из следующего разряда:
* |
2 А 8 |
- 1 С 6 |
2 |
1А16 – С16 = 1610 + 1010 – 1210 = 1410 = Е16
* |
2 А 8 |
- 1 С 6 |
0 E 2 |
Ответ: Е2
Задача 1.4.6. В двоичной системе счисления записано равенство: 101Х2 * 11Y12 = 1000Z1112, в котором неизвестные цифры обозначены буквами Х, Y и Z. Укажите значения Х, Y и Z, при которых это равенство будет верным (в ответе запишите эти значения подряд без пробелов).
Начнем умножать столбиком. Так как в правом разряде второго множителя идет цифра 1, то при умножении на 1 первого числа мы получим первое же число. Перепишем его в третий ряд:
1 |
0 |
1 |
X |
1 |
1 |
Y |
1 |
1 |
0 |
1 |
X |
Далее во втором числе идет цифра Y:
1*Y=Y,
0*Y=0,
X*Y=XY.
Продолжим умножение, заполняя со сдвигом четвертую строчку:
|
1 |
0 |
1 |
X |
|
1 |
1 |
Y |
1 |
|
1 |
0 |
1 |
X |
Y |
0 |
Y |
XY |
|
Продолжаем формировать строчки далее:
|
|
|
1 |
0 |
1 |
X |
|
|
|
1 |
1 |
Y |
1 |
|
|
|
1 |
0 |
1 |
X |
|
|
Y |
0 |
Y |
XY |
|
|
1 |
0 |
1 |
X |
|
|
1 |
0 |
1 |
X |
|
|
|
Далее запишем известный из условия задачи ответ:
|
|
|
|
1 |
0 |
1 |
X |
|
|
|
|
1 |
1 |
Y |
1 |
|
|
|
|
1 |
0 |
1 |
X |
|
|
|
Y |
0 |
Y |
XY |
|
|
|
1 |
0 |
1 |
X |
|
|
|
1 |
0 |
1 |
X |
|
|
|
1 |
0 |
0 |
0 |
Z |
1 |
1 |
1 |
Сравнивая два левых бита, видим, что X=1. Заменим все вхождения X на 1:
|
|
|
|
1 |
0 |
1 |
X |
|
|
|
|
1 |
1 |
Y |
1 |
|
|
|
|
1 |
0 |
1 |
1 |
|
|
|
Y |
0 |
Y |
Y |
|
|
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
0 |
0 |
Z |
1 |
1 |
1 |
Из второго слева столбца видно: 1+Y=1, следовательно, Y=0. Можно заменить все вхождения Y на 0:
|
|
|
|
1 |
0 |
1 |
X |
|
|
|
|
1 |
1 |
Y |
1 |
|
|
|
|
1 |
0 |
1 |
1 |
|
|
|
0 |
0 |
0 |
0 |
|
|
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
0 |
0 |
Z |
1 |
1 |
1 |
В четвертом столбце складываем в двоичном виде: 1+1+1=11. Левая единичка записывается в 4 разряде (то есть Z=1), а правая переходит в разряд слева. Для проверки продолжаем сложения (каждый раз 1 будет переноситься в следующий разряд) и убеждаемся, что ответ найден верно:
|
|
|
|
1 |
0 |
1 |
X |
|
|
|
|
1 |
1 |
Y |
1 |
|
|
|
* |
1 |
0 |
1 |
1 |
|
|
* |
0 |
0 |
0 |
0 |
|
|
* |
1 |
0 |
1 |
1 |
|
|
* |
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Итак, X=1, Y=0, Z=1.
Ответ. 101