这让我很困惑,我希望你们中的一个能回答我的问题.为什么这段代码会产生输出"116"?
#include <iostream>
int main()
{
std::cout << 0164 << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该代码在Mac OS X下使用MSVC++ 2010和g ++编译."cout"可以单独打印'0'和'164',但很快'0'是输出更改的数字中的第一个数字.
Kon*_*rak 12
因为前面的0使得数字被解释为八进制.
0164 =
4 * 1 +
6 * 8 +
1 * 64
= 116
Run Code Online (Sandbox Code Playgroud)
或者,通过二进制:
0164 =
0 1 6 4 =
000 001 110 100 =
1110100 =
116
Run Code Online (Sandbox Code Playgroud)
对于十六进制数字也是如此,例如,将它们写为0x1FA.
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |