11问答网
所有问题
long i=32768;printf("%d",i)为什么输出是1?
如题所述
举报该问题
推荐答案 2011-09-08
因为这个值有回绕性,当表示的值超过自己的范围时就会返回开头重新开始 , 如果是32769 的话 那么输出的就是2 。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/8FvMMM8vM.html
其他回答
第1个回答 2011-09-08
不应当啊,你再编译一次试试。
32768 十六进制 0x8000. 声明为 long,没问题。
printf("%d",i); printf("%ld",i); 结果应当一样。
第2个回答 2011-09-08
数据类型错误。。。前面的 long i 是长整型变量 ,,而后面“%d” 是以整型数据输出....
就是这错了 应该改成“%l,i”
第3个回答 2012-11-23
应该是-32768吧
当表示的值超过自己的范围时就会返回开头重新开始 从第一个数-32768开始,如果是32769 的话 那么输出的就是-32767
第4个回答 2011-09-07
printf 用 %ld
1
2
下一页
相似回答
...
long
i=32768;
执行
printf(
"
%d
"
,i)
||已知 long i=65539;执行语句print...
答:
printf("%d",i) %d是输出十进制,而long i=32768,32768本来就是十进制了,直接输出就可以了
。具体解答一下楼主下面的疑问 1、32768的二进制不是1000 0000 0000 0000。long i=32768,使用的是long类型存放,long类型占用4个字节,所以32768不止这么长,前面还有一堆0了。0000 0000 0000 0000 1000...
大家正在搜