Из моего понимания восьмеричных цифр в карте чисел до 3-битных сегментов и никогда не будет действительно представлять двоичную строку длиной 2^n
.
Из любопытства, когда/почему/как это полезно? :-)
..если основе первичного представления слова в архитектуре является главным (!) Мощностью 2, по крайней мере, убедитесь, что он даже ;-).
Octal может представлять собой двоичную строку любой длины. Хотя верно, что с 8-битными байтами и байтовой адресацией, шестнадцатеричный кажется более естественным. Исторически, однако...
у многих машин было 36-битных слов, где восьмеричность имела большой смысл, и
на PDP-11 (на котором выполнялись первые компиляторы C), машинные инструкции были разделены на 3 группы бит: высокий бит для определения того, была ли операция выполнена на байтах или словах, затем на 3-битном операционном коде и на две шесть разрядных адресов, причем первые 3 бита используют режим адресации, а второй - регистр.
В то время, когда C был впервые изобретен, восьмеричные, вероятно, чаще использовались, чем шестнадцатеричные, и поэтому авторы этого языка обеспечивали его. Однако я не могу вспомнить, что это действительно используется в последнем коде в течение очень долгого времени.)
Во времена разработки Unix существовали машины (DEC) с 36-битным словом. 36-битное слово состоит из четырех 9-битных байтов, каждый из которых представлен тремя восьмеричными цифрами.