在 C++ 中,八进制数是通过在其前面加上 0
来定义的,示例:
01 = 1
010 = 8
014 = 12
所以我正在试验如何在 C++ 中使用 Base 8,并尝试使用循环添加它,如下所示:
int base8Number = 00;
for (int i = 01; i < 011; i+=01)
{
base8Number += i;
cout << base8Number << '\n';
}
显然,C++ 不喜欢使用八进制数,我得到的输出如下:
1
3
6
10
15
21
28
36
我知道它在 Base 8 中不起作用的最明显原因是 28
结果输出,因为 8
数字未在 Base 8 中使用。
所以,我的问题是:您可以在 C++ 中使用 Base 8,还是仅用作常量?如果您可以在 C++ 中使用 Base 8,您将如何操作?
最佳答案
首先,让我们记住,当我们按照您的方式打印数字时,它们将以十进制显示。
现在,让我们不用八进制重写代码:
int base10Number = 0;
for (int i = 1; i < 9; i+=1)
{
base10Number += i;
cout << base10Number << '\n';
}
那么现在让我们看看您的代码实际上在做什么:
cout << 1 << "\n"; // 1
cout << 1 + 2 << "\n"; // 3
cout << 1 + 2 + 3 << "\n"; // 6
cout << 1 + 2 + 3 + 4 << "\n"; // 10
....
这就是您所看到的。所以不,八进制在 c++ 中的工作方式没有问题。
如果您愿意,可以使用 std::oct
告诉std::cout
使用八进制打印。例如:
int main() {
std::cout << std::oct << 25 << "\n"; // Outputs: 31
}
关于c++ - 如何使用 Base 8(八进制)数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458213/