int型的0XFFF若以%d输出结果为什么是-1
int型的0XFFF若以%d输出结果为什么是-1
----------------解决方案--------------------------------------------------------
一般不可能呀~可能和你的计算机或者操作系统有关~windows下的话,int一般是4字节,unix下好像是2字节。但是也不可能输出-1。难道你的系统int是1字节的?或者你用了char?
----------------解决方案--------------------------------------------------------
是不是打错了,应该是0xffff。。
才会输出-1吧。。
----------------解决方案--------------------------------------------------------
是打错了,那为什么是-1啊,多谢!
----------------解决方案--------------------------------------------------------
传说中的溢出~ int如果是2字节的话~只能表示0―32747(0x7fff)和-1― -32768(FFFF―8000)
不知道你明白否~看一下补码的知识吧~负数在计算机内使用补码表示的FFFF就是-1的补码
----------------解决方案--------------------------------------------------------
溢出啊……
----------------解决方案--------------------------------------------------------
那么如果十六进制数不是0Xffff,而是其它的,比如是0X000f,那么会直输出15吗?谢谢了
----------------解决方案--------------------------------------------------------
会的,请多点实践~多看书~
----------------解决方案--------------------------------------------------------