【发布时间】:2014-12-09 11:38:29
【问题描述】:
在 C++ 中,可以指定十进制整数:int x = 158、八进制整数:int x = 0236 和十六进制整数:int x = 0x9e。在任何基础中定义ints 的最简单方法是什么,例如二进制,基数 3,基数 9,什么?是否有像b101110 这样的标准前缀,还是过程更复杂?
谢谢。
【问题讨论】:
-
我认为如果你想用另一个基础定义
ìnt,你必须为此编写一个特定的函数(或创建一个新的数据类型......) -
带有
0b前缀的二进制文字被添加到 C++14 的标准中。 -
正如@Michael 所说,C++14 中有
0b;除此之外,您永远需要的只是十进制和十六进制(如果您正在处理 UNIX 权限,可能可能八进制)。跨度> -
@Michael 尚未广泛使用,也没有解决他的问题(例如 base 3、base 9 等)。 (并且没有某种分隔符的二进制文字在很大程度上是不可用的。)
-
@Griwes 实际上,八进制的使用非常广泛。给定语法,不能用十进制表示 0,它必须是
"0"(八进制)或"0x0"(十进制)。