reverseenengineering:8-система

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
reverseenengineering:8-система [2025/06/24 23:39] Lexreverseenengineering:8-система [2025/06/24 23:55] (текущий) – [Перевод восьмеричных чисел в двоичные] Lex
Строка 6: Строка 6:
  
 > Восьмеричная система применяется при выставлении прав доступа к файлам и прав исполнения для участников в Linux-системах. > Восьмеричная система применяется при выставлении прав доступа к файлам и прав исполнения для участников в Linux-системах.
 +
 +===== Перевод восьмеричных чисел в двоичные =====
 +
 +   08  = 0002
 +   18  = 0012
 +   28  = 0102
 +   38  = 0112
 +   48  = 1002
 +   58  = 1012
 +   68  = 1102
 +   78  = 1112
 +   
 +===== Использование в естественных языках =====
 +
 +> Для перевода восьмеричного числа в двоичное необходимо заменить каждую цифру восьмеричного числа на триплет двоичных цифр. Например: 25418 = [ 28 | 58 | 48 | 18 ] = [ 0102 | 1012 | 1002 | 0012 ] = 0101011000012.
 +
 +> Языки юки и паме используют восьмеричную систему счисления.
 +
 +===== В языках программирования =====
 +
 +> Ряд языков программирования, в частности, Си/C++, Ada, Perl, Java и Python (до 3.0), имеют специальный синтаксис (аналогичный использованию префикса "0x" для шестнадцатеричных констант) для записи восьмеричных констант с применением ведущего нуля, например, 0644 представляет собой запись литеральной константы с десятичным значением 42010.
 +
 +> По статистике, применение восьмеричных констант в программах на языке Си чрезвычайно низко (около 0,1 % от всех литеральных констант, без учета константы «0», технически также восьмеричной). Определенную популярность такие константы сохраняют в случае описания прав на файлы в Unix/POSIX стиле (0666, 0750), и при отдельных случаях работы с битовыми масками, когда программисту проще представлять битовое представление восьмеричных чисел, а не шестнадцатеричных или, тем более, десятичных.
 +
 +> Подобные правила указания системы счисления могут быть неочевидны для программистов и приводят к ошибкам. В некоторых языках существуют рекомендации не использовать такую запись, в других языках такая запись восьмеричных констант запрещена (например, в Python с версии 3 используется префикс 0o) или не используется (например Rust и D).
 +
 +> Некоторые версии языка Бейсик используют для записи восьмеричных констант префикс &O, например, &O644. Здесь O — это не ноль, а буква латинского алфавита, обозначающая английское слово Octal (восьмеричный).
 +
 +> Объединение двоичных разрядов в триплеты битов применялось системах команд и, как следствие, в языках ассемблера советских ЭВМ «Минск-22», БК-0010 и БК-0011, ДВК и других.
  • reverseenengineering/8-система.1750783176.txt.gz
  • Последнее изменение: 2025/06/24 23:39
  • Lex