При наладке
аппаратных средств ЭВМ или создании новой программы возникает необходимость
"заглянуть внутрь" памяти машины, чтобы оценить ее текущее состояние.
Но там все заполнено длинными последовательностями нулей и единиц двоичных
чисел. Эти последовательности очень неудобны для восприятия человеком,
привыкшим к более короткой записи десятичных чисел. Кроме того, естественные
возможности человеческого мышления не позволяют оценить быстро и точно величину
числа, представленного, например, комбинацией из 16 нулей и единиц.
Для облегчения
восприятия двоичного числа решили разбивать его на группы разрядов, например,
по три или четыре разряда. Эта идея оказалась очень удачной, так как
последовательность из трех бит имеет 8 комбинаций, а последовательность из 4
бит - 16. Числа 8 и 16 являются степенями двойки, поэтому легко находить
соответствие с двоичными числами. Развивая эту идею, пришли к выводу, что
группы разрядов можно закодировать, сократив при этом длину последовательности
знаков. Для кодировки трех битов требуется восемь цифр, поэтому взяли цифры от
0 до 7 десятичной системы. Для кодировки же четырех битов необходимо
шестнадцать знаков; для этого взяли 10 цифр десятичной системы и 6 букв
латинского алфавита: A, B, C, D, E, F. Полученные системы, имеющие основания 8
и 16, назвали соответственно восьмеричной и шестнадцатеричной.
В восьмеричной (octal) системе счисления используются восемь различных
цифр: 0, 1, 2, 3, 4, 5, 6, 7. Основание системы - 8. При записи отрицательных
чисел перед последовательностью цифр ставят знак минус. Сложение, вычитание,
умножение и деление чисел, представленных в восьмеричной системе, выполняются
весьма просто, подобно тому, как это делают в общеизвестной десятичной системе
счисления.
Пример выполнения операции сложения в восьмеричной системе счисления:
1 1 Красным цветом показан перенос из младших разрядов в
старшие.
4 7 6 Выполнение
операции в каждом разряде:
+ 3 4 1) 6 + 4 = 10 = 1*8
+ 2 = 128
5 3 2 2) 1 + 7 + 3 = 1*8
+ 3 = 138
3) 1 + 4 = 5
Проверим результат
путем перевода чисел в десятичную систему счисления :
4768 = 4*82 + 7*8 + 6 = 318 318
348 = 3*8 + 4 = 28 +28
532 = 5*82 + 3*8 + 2 = 346 346
Пример выполнения операции вычитания в восьмеричной системе счисления:
7 8 Красным цветом показан перенос из старших разрядов в младшие.
5 3 2 Выполнение
операции в каждом разряде:
- 3 4 1) 8 + 2 – 4 =
6
4 7 6 2) 7 + 2 - 3 = 1*8
+ 3 = 138
3) 1 + 4 = 5
Пример выполнения операции умножения в восьмеричной системе счисления:
5 4 54 4*4 = 16 = 2*8 + 0
= 208 (записываем 0)
* 3 4 * 4
2+ 5*4 = 22 = 2*8
+ 6 = 268
2 6 0 260
+ 2 0 4
2 3 2 0
54 4*3 = 12 = 1*8 + 4
= 148 (записываем 4)
* 3 1 + 5*3 = 16 = 2*8
+ 0 = 208
204
Выполним проверку:
548 = 5*8
+ 4 = 4410
44
348 = 3*8
+ 4 = 2810
* 28
23208 =
2*83 + 3*82 + 2*8
= 123210 352
+ 88
= 123210
Пример выполнения операции деления в восьмеричной системе счисления:
2 3 2 08 5 48
- 2 0 4 3 48
2 6 0
- 2 6 0
0
Деление в восьмеричной системе
близко делению в десятичной системе: нужно подобрать цифры частного. 232 делим
на 54, в десятичной системе мы получили бы целое частное 4, но из предидущего
примера мы знаем, что в восьмеричной системе 54*4 = 260, это много, попробуем
взять цифру поменьше – 3, умножаем 54*3 = 204, эта цифра подходит, и т.д.
В
различных языках программирования запись восьмеричных чисел начинается с 0,
например, запись 011 означает десятичное число 9.
Комментариев нет:
Отправить комментарий