C ++中任何基础的整数文字?

时间:2014-12-09 11:38:29

标签: c++ base radix

在C ++中,可以以十进制:int x = 158,八进制:int x = 0236和十六进制:int x = 0x9e分配整数。在任何基础中定义int的最简单方法是什么,例如:二进制,基数3,基数9,什么?是否有像b101110这样的标准前缀,或者这个过程是否更复杂?

感谢。

2 个答案:

答案 0 :(得分:3)

二进制文字(0b01010110101)已添加到C ++ 14中。

不支持其他基础,但可以使用模板化的原始形式的用户定义文字和constexpr来模拟它们。 Andrzej Krzemienski在此描述:https://akrzemi1.wordpress.com/2012/10/23/user-defined-literals-part-ii/

答案 1 :(得分:2)

首先:你的例子没有分配,但是初始化。其次,将表达式分配给int(或者使用表达式初始化它)。最后,积分文字(只在表达式中合法)只能用十进制,八进制或十六进制表示; C系列语言不支持任何其他语言。