Восьмеричная система счисления
При описании двоичной системы счисления было упомянуто, почему современное "железо" понимает только двоичную систему. Однако человеку трудно воспринимать длинные записи нулей и единиц, а переводить числа из двоичной в десятичную систему и обратно трудоемко.
Поэтому в программировании иногда используют другие системы счисления – восьмеричную и шестнадцатеричную. Поскольку 8 и 16 являются степенями двойки,
8 = 23, 16 = 24
преобразование двоичного числа в эти системы, также как обратная операция, выполняются просто.
В восьмеричной системе счисления используется восемь знаков-цифр (от 0 до 7). Каждой цифре соответствует число из трех цифр в двоичной системе счисления:
000 – 0 001 – 1 010 – 2 011 – 3 100 – 4 101 – 5 110 – 6 111 – 7
Для преобразования двоичного числа в восьмеричное надо разбить его на тройки цифр и заменить каждую тройку соответствующей ей одной цифрой из восьмеричной системы счисления. Разбивать двоичное число на тройки следует с конца, а вместо недостающих цифр в начале можно записать нули.
1011101 = 1 011 101 = 001 011 101 = 1 3 5 = 135
В примере число 1011101 в двоичной системе приводится к числу 135 в восьмеричной системе счисления.
10111012 = 1358
Обратный перевод, когда восьмеричное число переводится в двоичное, выполняется аналогично. Только здесь на место восьмеричных цифр подставляются двоичные числа, состоящие из трех цифр.
135 = 001 011 101
Как перевести восьмеричное число в десятичное? Здесь действует тот же алгоритм, как при преобразовании двоичного числа в десятичное. Вспомним его:
11012 = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 8 + 4 + 0 + 1 = 1310
Однако в случае восьмеричного числа за основание степени берется десятичное число 8:
1358 = 1 * 82 + 3 * 81 + 5 * 80 = 64 + 24 + 5 = 9310
Преобразование десятичного числа в восьмеричное также похоже на перевод в двоичное, за исключением того, что делить надо на 8:
93 / 8 = 11, остаток 5 11 / 8 = 1, остаток 3 1 / 8 = 0, остаток 1
Собираем остатки с конца и получаем число 135 в восьмеричной системе счисления.