c++ - 关于二进制数字的 int 数组

标签 c++ arrays binary int digit

我想知道为什么输出的结果是 100、8、1。 010 甚至没有任何意义,它不是二进制数字中的 2。我错过了什么吗?

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    int code[3];
    code[0] = 100;
    code[1] = 010;
    code[2] = 001;
    printf("%d\n", code[0]);
    printf("%d\n", code[1]);
    printf("%d\n", code[2]);
}

最佳答案

100、010 和 001 不是二进制文字。 100 是十进制字面量; 010 和 001 是八进制(基数 8)文字。如果您使用的是 gcc,则可以通过使用前缀 0b 来支持二进制文字的扩展,如

code[0] = 0b100; // evaluates to 4

关于c++ - 关于二进制数字的 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51053804/

相关文章:

c++ - 如何调试解决方案中包含的非托管 C++ 代码

c++ - 模板:如何使用模板变量控制构造函数参数的数量。

c++ - 使用 void 指针在 C++ 中打印数组

c++ - 需要帮助理解 vector 如何以二进制表示 [C++]

Java - 当 radix=2 时,Integer.parseInt() 不返回负数

java - 确保对严格正多头的异或运算仅产生严格正多头

c++ - constexpr 类成员的优缺点

C++如何循环这个东西(初学者)

javascript - 遍历数组只显示最后一个值

javascript - 简化 JavaScript 对象的 JSON 输出