Двоичная система

advertisement
Двоичная система, являющаяся основой всей компьютерной арифметики,
весьма громоздка и неудобна для использования человеком. Поэтому
программисты пользуются двумя кратными двоичной системами
счисления: восьмеричной и шестнадцатеричной. В случае
шестнадцатеричной системы арабских цифр не хватает, и в качестве
цифр используются первые шесть заглавных букв латинского алфавита.
Приведем в качестве примера запись натуральных чисел от единицы до
шестнадцати в четырех системах счисления:
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
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
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:
Дописываемые
единицы
110
Первое
слагаемое
Второе
слагаемое
Сумма
165
133
320
Обратите внимание, что во втором столбике 6+3+1 дает десять, что
записывается как 128, двойка записывается на свое место, а единица
подписывается сверху.
Кстати, среди приведенных вариантов ответа два содержат
недопустимые в восьмеричной системе цифры 8 и 9.
Обратите внимание учеников, это один из способов проверки
правильности записи чисел в позиционных системах счисления:
проверить, все ли цифры принадлежат алфавиту этой системы.
Контрольный вопрос: Чему равна сумма чисел 2718 и 3278, записанная в
восьмеричной системе?
6208
Задание 2.5:
Для кодирования букв А, Б, В, Г решили использовать двухразрядные
последовательные двоичные числа (от 00 до 11, соответственно). Если
таким способом закодировать последовательность символов БАВГ и
записать результат шестнадцатеричным кодом, то получится
4B
Это правильный ответ. По условию А кодируется как 00, Б – 01, В – 10, Г
– 11, поэтому БАВГ будет закодировано как 010010112, что
соответствует 4В16.
Download