Восьмеричное и шестнадцатеричное могут быть преобразованы из двоичного кода путем группировки битов (3 в восьмеричном и 4 в шестнадцатеричном) http://www.ascii.cl/conversion.htm
Но дело в том, что память, выделенная компилятором, находится в2 ^ n, и вы не можете разделить блоки размером 2 ^ n 3, в то время как это можно легко сделать с шестнадцатеричным значением, где размер блока равен 4
, например, с целочисленным значением gcc 32 бит, которое не может быть разделено наравно 3 бита 32/3 = 10,666, в то время как его можно разделить на 4 бита, блок 32/4 = 8
Надеюсь, я разъясню свою точку зрения.