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

10-чная

2-чная

8-чная

16-чная

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10


Видно, что в двоичной системе запись чисел второй восьмерки чисел (от 8 до 15) отличается от записи первой восьмерки (от 0 до 7) наличием единицы в четвертом (справа) разряде. На этом основан алгоритм перевода двоичных чисел в восьмеричные «по триадам». Для применения этого алгоритма надо разбить двоичное число на тройки цифр (естественно, отсчитывая справа) и записать вместо каждой из троек восьмеричную цифру:
101011012 > 10 101 101 > 2 5 5 > 2558.
Крайняя левая тройка может быть неполной (как в примере), это не мешает реализации алгоритма. Для получения полных троек можно приписать слева недостающие незначащие нули (010 = 10 независимо от системы счисления).
Убедимся в правильности алгоритма:
101011012 = 128+32+8+4+1 = 17310;
2558 = 2·64+5·8+5·1 = 128+40+5 = 17310.
Для перевода чисел из восьмеричной системы в двоичную используется обратный алгоритм: восьмеричные цифры заменяются на тройки двоичных цифр (при необходимости слева дописываются недостающие нули):
3258 > 3 2 5 > 11 010 101 > 110101012.
В десятичной системе это число будет записано как 213.

НЕ нашли? Не то? Что вы ищете?



Задание 2.1: Переведите число 11001011 в восьмеричную систему

313

Для перевода чисел из двоичной системы в шестнадцатеричную используется алгоритм «по тетрадам». Строка двоичных цифр разбивается на четверки и вместо них записываются шестнадцатеричные цифры:
101011012 > 1010 1101 > A D > AD16.
Еще раз проверим правильность вычислений: 10·16 + 13 = 173.
Аналогично работает и обратный алгоритм: вместо шестнадцатеричных цифр подставляются четверки двоичных цифр.
213 = 208 + 5 = 13·16 + 5 = 128 + 64 + 16 + 4 + 1.
Увидим, что результат выполнения алгоритма тот же:
D516 > D 5 > 1101 0101 > 110101012.
Очень важно не забывать дописывать недостающие нули слева при переводе каждой цифры, чтобы получалась полноценная четверка или тройка двоичных цифр!

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

10100100

Арифметические операции в позиционных системах счисления производятся по единому алгоритму. Так, сложение двоичных чисел происходит по классическому алгоритму «столбиком» с переносом двойки в следующий разряд.
Покажем этот алгоритм на примере двух двоичных чисел 10101012 и 1101112:

Дописываемые единицы

1 1 0 1 1 1 0

Первое слагаемое

1 0 1 0 1 0 1

Второе слагаемое

0 1 1 0 1 1 1

Сумма

1 0 0 0 1 1 0 0


Результат сложения выглядит как 100011002. Проверим результат нашего сложения, для чего переведем все числа в десятичную систему:
10101012 = 8510, 1101112 = 5510, 100011002 = 14010, что действительно представляет собой результат сложения 55 и 85.

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

Задание 2.3: Сложите числа 3278 и A316. Результат представьте в шестнадцатиричной системе.

17A

Задание 2.3: Сложите числа 3278 и A316. Результат представьте в шестнадцатиричной системе.

Решение.
Переведем число 3278 в шестнадцатиричную систему (через двоичную):
3278 -> 3 2 7 -> 11 010 111 -> 110101112 -> 1101 0111 -> D 7 -> D716
Теперь выполним сложение по разрядам:
7 + 3 = 10 = A16; D16 + A16 = 13 + 10 = 23 = 1716
Записав цифры подряд получаем ответ: 17A16

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

101111010

Задание 2.4:
Вычислите сумму чисел x и y, если
x=11101012;
y=10110112.
Результат представьте в виде восьмеричного числа.

320

Решение:
Существует два способа вычисления искомой суммы.
Первый способ – сложить числа по правилам сложения двоичных чисел (столбиком, как показано выше), а результат перевести в восьмеричную запись, разбив на триады:
11101012 + 10110112 = 110100002 > 11 010 000 > 3 2 0 > 3208.
Второй способ состоит в том, чтобы сначала перевести числа в восьмеричную систему, а потом сложить их:
11101012 > 1 110 101 > 1 6 5 > 1658;
10110112 > 1 011 011 > 1 3 3 > 1338.
Теперь столбиком сложим восьмеричные числа 1658 + 1338:

Дописываемые единицы

1 1 0

Первое слагаемое

1 6 5

Второе слагаемое

1 3 3

Сумма

3 2 0


Обратите внимание, что во втором столбике 6+3+1 дает десять, что записывается как 128, двойка записывается на свое место, а единица подписывается сверху.
Кстати, среди приведенных вариантов ответа два содержат недопустимые в восьмеричной системе цифры 8 и 9.
Обратите внимание учеников, это один из способов проверки правильности записи чисел в позиционных системах счисления: проверить, все ли цифры принадлежат алфавиту этой системы.

Контрольный вопрос: Чему равна сумма чисел 2718 и 3278, записанная в восьмеричной системе?

6208

Задание 2.5:
Для кодирования букв А, Б, В, Г решили использовать двухразрядные последовательные двоичные числа (от 00 до 11, соответственно). Если таким способом закодировать последовательность символов БАВГ и записать результат шестнадцатеричным кодом, то получится

4B

Это правильный ответ. По условию А кодируется как 00, Б – 01, В – 10, Г – 11, поэтому БАВГ будет закодировано как 010010112, что соответствует 4В16.