Я нахожу в стандарте:
Представления целочисленных типов должны определять значения с использованием чисто двоичной системы счисления
Но я понимаю, что это не требование, что C ++ должен быть реализован на машинах, которые основаны на базе 2 в аппаратных средствах; другими словами, это, кажется, только требование к тому, что должен увидеть программист.
Требует ли стандарт C ++ бинарного процессора или может быть реализована правильная реализация C ++ на троичных или десятичных машинах?
Крошечная справочная информация: в истории уже были компьютеры с десятичными, троичными или компьютерами, где байт C ++ имел бы длину 36 бит (PDP-10)
Хотя это прямо не указано в стандарте, существует правило «как будто», которое применяется практически ко всем требованиям стандарта C ++ (и C).
Другими словами, вам разрешается нарушать любое правило, которое вы хотите, при условии, что вы производите те же внешние наблюдаемые эффекты, как если бы вы следовали правилу, как указано. Хотя это и не указано в самих стандартах, это правило является прямо указано в обоснование для стандарта C. Насколько я знаю, для стандарта C ++ нет подходящего обоснования, но оба они достаточно тесно связаны, и я вижу небольшую проблему в применении правила к обоим.
Других решений пока нет …