Числа · система счисления 8Восьмеричные числа

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

Всё считается в браузере — ничего не уходит на сервер
01Перевод02Разрядная лента03Права chmod04Таблица05О системе06Вопросы
01

Перевод

введите число в любую систему
Ввод · восьмеричная
Частые права доступа
Запись
Результат
Восьмеричное
644
Десятичное420
Шестнадцатеричное1A4
Двоичное110 100 100
Бит в числе9
Как права доступа
rw-r--r--
Владелец — rw-, группа — r--, остальные — r--.
Разобрать по битам
02

Разрядная лента

крутите разряды стрелками — число меняется на глазах
66 × 64владелец
44 × 8группа
48⁰ = 14 × 1остальные
420
в десятичной

Каждый разряд — цифра, умноженная на степень восьмёрки. Под цифрой — её тройка бит: восемь равно двум в третьей степени, поэтому одна восьмеричная цифра ровно покрывает три бита. Отсюда и права доступа: чтение, запись, запуск — те самые три бита.

03

Права доступа chmod

нажимайте галочки — восьмеричный код пересчитается
КтоЧто можноЦифра
Владелецсоздатель файла6
Группагруппа файла4
Остальныевсе прочие пользователи4
Символьная записьrw-r--r--Командаchmod 644
Разумные права

Запись доступна только владельцу — обычная и безопасная схема для файлов и каталогов проекта.

Готовые наборы
04

Таблица переводов

нажмите строку — значение подставится
ДесятичноеOCTHEXДвоичноеЧем примечательно
777111максимум одной цифры
81081000начало второго разряда
64100401000000начало третьего разряда
100144641100100круглое в десятичной
1282008010000000старший бит байта
255377FF11111111максимум одного байта
4206441A4110100100права 644
4937551ED111101101права 755
5117771FF111111111права 777
51210002001000000000начало четвёртого разряда
1024200040010000000000килобайт
40957777FFF111111111111максимум четырёх разрядов
05

О восьмеричной системе

Восьмеричная система использует цифры от нуля до семи. Одна её цифра — ровно три бита, и именно поэтому она пережила эпоху, для которой создавалась: права доступа в Unix состоят из троек «чтение, запись, запуск», а тройка бит — это одна восьмеричная цифра. В остальном её вытеснила шестнадцатеричная, которая точно ложится на байт.

Одна цифра — три бита

Тройка
7 = 111
Восемь — это два в третьей степени, поэтому восьмеричная цифра ровно покрывает три бита. Перевод в двоичную идёт разряд в разряд, без деления.

Права доступа

Unix
r=4 · w=2 · x=1
Чтение, запись и запуск — три бита, то есть одна цифра. Три цифры описывают владельца, группу и остальных: 644, 755, 600.

Ведущий ноль

Синтаксис
0644 = 420
В языках Си-семейства ноль впереди означает восьмеричную запись. Источник классических ошибок, поэтому в новых языках пишут явный префикс 0o.

Особые биты

Четвёртый разряд
4755 · 2755 · 1777
Четвёртая цифра слева задаёт setuid, setgid и sticky. Например, 1777 — общий каталог, где удалять файлы может только их владелец.

Почему её вытеснил HEX

История
8 vs 16
Байт — восемь бит, и он не делится на тройки нацело. Шестнадцатеричная цифра берёт четыре бита, поэтому байт — ровно два разряда. Восьмеричная осталась там, где данные группируются по три бита.

Экранирование в строках

Практика
\101 = A
В строках Си, Python и оболочках обратный слэш с восьмеричным кодом задаёт символ. Встречается в старых скриптах и в выводе некоторых утилит.
06

Частые вопросы

255 в десятичной — это 377 в восьмеричной. Три восьмеричных разряда покрывают девять бит, поэтому байт умещается в них с запасом.

Работает с целыми неотрицательными числами любой длины. Права доступа разбираются для трёх и четырёх разрядов; последствия особых битов зависят от системы.

«» добавлен в избранное