java - Для чего используются восьмеричные числа(база 8)?




literals octal (2)

Java предоставляет способы написания числовых литералов в базах 2, 8, 10 и 16.

Мне интересно, почему база 8 включена, например, int x = 0123; ?

Я думаю, что может быть что-то похожее на тот факт, что в шестнадцатеричном формате емкость одного байта равна FF + 1 и так далее.


«Восьмеричные числа не так часто встречаются, как раньше. Однако Октал используется, когда число бит в одном слове кратно 3. Он также используется в качестве сокращения для представления прав доступа к файлам в системах UNIX и представления Номера UTF8 и т. Д.

От: https://www.tutorialspoint.com/octal-number-system


Историческая наука о компьютерах. Для представления группы битов база 10 не подходит, база 8 = 2 3 для 3 битов и база 16 = 2 4 для 4 битов подходят лучше.

Преимущество базы 8 состоит в том, что все цифры действительно являются цифрами: 0-7, тогда как база 16 имеет "цифры" 0-9A-F.

Для 8 битов байта база 16 (шестнадцатеричная) лучше подходит и победила. Для Unix base 8 восьмеричное, часто все еще используется для битов rwx (чтение, запись, выполнение) для пользователя, группы и других; следовательно восьмеричные числа, такие как 0666 или 0777.

Шестнадцатеричный является вездесущим, не в последнюю очередь из-за размеров слова компьютеров в настоящее время несколько байтов. То, что 8-битный byte стал стандартом, - это еще одна сложная история (2 3 бита и адресация).





octal