В C ++ можно назначать целые числа в десятичном виде: int x = 158
в восьмеричном виде: int x = 0236
и в шестнадцатеричном: int x = 0x9e
, Каковы самые простые способы определения int
в любой базе, например бинарный, база 3, база 9, что ли? Существуют ли стандартные префиксы, такие как b101110
или процесс более запутанный?
Благодарю.
Двоичные литералы (0b01010110101
) были добавлены в C ++ 14.
Другие базы не поддерживаются, но их можно эмулировать, используя шаблонную необработанную форму пользовательских литералов и constexpr. Анджей Кшеменский описывает это здесь: https://akrzemi1.wordpress.com/2012/10/23/user-defined-literals-part-ii/
Первое: ваш пример не присваивает, а инициализирует. Во-вторых, вы назначаете выражение для int
(или вы инициализируете это выражением). И, наконец, целочисленные литералы (которые допустимы только в выражении) могут быть выражены только в десятичном, восьмеричном или шестнадцатеричном виде; Семейство языков C не поддерживает ничего другого.