A) 65539 B) -3 C) 3 D) 程序不能执行
请朋友们写出详细的解答过程。谢谢!!!
c语言试题 已知 long i=65539;执行语句printf("%d",i);屏幕显示____。
答案:2 悬赏:40 手机版
解决时间 2021-03-15 16:38
- 提问者网友:wodetian
- 2021-03-14 23:08
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-03-14 23:22
A
好像没什么好解释的吧,
long是32位的,没有越界
好像没什么好解释的吧,
long是32位的,没有越界
全部回答
- 1楼网友:胯下狙击手
- 2021-03-14 23:31
楼主完全不用管二进制的。
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 0000 0000 0000
这才是32768的二进制表示方法,最高位是0,并不是1。
如果定义成short i =32768的话,输出就是-32768了。
2、用%d输出是按照i的类型来输出,i占用4个字节,就使用4个字节输出。输出全部0000 0000 0000 0001 0000 0000 0000 0011,既不是0000 0000 0000 0001,也不是0000 0000 0000 0011。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯