friendan 发表于 2013-11-8 13:30:20

输出结果是9,你信吗?

#include<stdio.h>
void main()
{
       int a=011;
       printf("%d\n",a);//输出结果是9,你信吗?
}
{:7_158:}输出结果是9,你信吗?

zhanshen158 发表于 2013-11-8 15:48:14

011是8进制数

牡丹花下死做鬼 发表于 2013-11-8 17:01:00

不然呢??011 是八进制啊转换成十进制不是9是多少??

骇客不会飞 发表于 2013-11-8 18:01:08

哪里提示八进制了:funk:

CL0419 发表于 2013-11-8 18:20:38

骇客不会飞 发表于 2013-11-8 18:01 static/image/common/back.gif
哪里提示八进制了

a = 011不是八进制吗?

べ惟爱伊. 发表于 2013-11-8 18:36:13

好低级的想法啊

E=MC2 发表于 2013-11-8 18:53:20

int a=011;
00401028   mov         dword ptr ,9
看到没? 这个C++对应的汇编代码赋值为9
还有一点 就是 0开头的数字 在C++中是8进制。而0x开头的数字是16进制 貌似C++只支持10 8 16进制的书写格式。汇编里支持2进制的书写方式 比如像 mov ax,10111011b。

happyin3 发表于 2013-11-8 18:57:27

学习了。。好帖。。小细节学的时候都没怎么注意。。

兼容小菜鸟 发表于 2013-11-8 19:54:28

小朋友   想忽悠我们呀

hhb14056 发表于 2013-11-8 20:29:19

。。。0是八进制的前缀哦

四季明丶 发表于 2013-11-9 01:27:44

楼主说的对

wjwjwjwj 发表于 2013-11-9 10:24:59

0是八进制的前缀哦:lol:

骇客不会飞 发表于 2013-11-10 18:10:19

:sweat::sweat::sweat::sweat:哈哈
页: [1]
查看完整版本: 输出结果是9,你信吗?