从一段混淆的代码中激发灵感,我有一个关于为整数赋值的小问题:
#include <iostream>
#include <cstdio>
int main() {
int i = 0101;
std::cout << i << "\n";
}
输出是65,我不知道65来自哪里?有什么想法吗?
答案 0 :(得分:11)
它指定一个八进制(base-8)编号:0101 == 1 * (8 * 8) + 1 == 65
。
答案 1 :(得分:0)
您可以编写十六进制整数:
int main() {
int i = 0x101; //0x specifies this (i.e 101) is hexadecimal integer
std::cout << i << "\n"; //prints 257 (1 * 16 * 16 + 1)
}
输出:
257