中易网

【c语言数据结构】已知 long i=32768;执行 printf("%d",i)||已知 long i=65539;执行语句printf("%d",i)

答案:2  悬赏:20  
解决时间 2021-02-17 11:54
【c语言数据结构】已知 long i=32768;执行 printf("%d",i)||已知 long i=65539;执行语句printf("%d",i)
最佳答案
楼主完全不用管二进制的。

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。
追问:谢谢你哦。如果定义int 为2字节,long为4字节呢?
追答:%d 就是根据后面给定的变量的类型来输出的。如果int是2个字节,后面给了一个int类型的变量,那就是按照2个字节来输出。
追问:那这样的话,long是4字节,int是2字节,i的二进制是0000 0000 0000 0000 1000 0000 0000 0000 占4个字节,然后按照2个字节输出,请问应该是取哪两个?我不懂小字节这块内容,老师没讲,书上没说,而且我不是计算机专业的,,,可是考试的题目里有。。。
追答:这个不用考虑大小字节序的问题。

长字节向短字节强制转换时,都是取地位。4字节向2字节转换,2字节获取的是4字节的地2字节。

不管当前设备是字节序如何。
全部回答
2、如果在32位平台上,输出仍是32768,D正确;如果是在16位机上输出是-32768,B正确。
3、如果在32位平台上,输出仍是65539,A正确;如果是在16位机上输出是3,C正确。
追问:为什么呀?能结合二进制给我讲讲吗??
追答:对于第二题:
如果是32位int平台,那么32768、65539都还远小于int能表达的最大数,所以写什么就输出什么。这就不用多说了。对于16位int平台,int能表示的最大整数是32767,即二进制0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
雷允上尚义药店我想知道这个在什么地方
vmware7.1.4序列号跪求一个能用的
尽珠帘画栋,卷不及暮雨朝云。便断碣残碑,都
aj11和黑水泥选哪个
请问储水式热水器,拿个牌子耐用又安全…
井庄小学(漯河舞阳县)地址有知道的么?有点事
我的手机是三星i5700 2.2的 我刷过好多MOD,
优秀销售员有什么特点
爱亲者,不敢恶于人的下句
今天商场专柜买的高丝贝缔雅的套盒。回来查了
请问30吨不锈钢方形水箱需要多少工人工资,要
吃虾不去虾线对人的健康有多大影响
简述《老人与海》中桑提亚哥与鲨鱼搏斗的情节
梦幻西游武器晶清诀多少钱 有图
请问有RJ48这样的接口的吗?与RJ45有什么区别
推荐资讯
一转眼你都离开三个月了,不是我接受了你离开
一亩八分地是多少米
梦比优斯奥特曼哪一集有假梦比优期
请问在哪些网站上可以帮忙修改一下GRE作文,
中国近代哪省高官最多
李耀君诊所这个地址在什么地方,我要处理点事
单立人加个局念什么字母?
同山佬土特产在什么地方啊,我要过去处理事情
日版ps4有中文吗
用江西上铙话说老公怎么说?
跟男朋友分开一个月 好担心他会找其他女生
钓鱼杆怎么选呢?手竿、海竿、手海两用竿这三
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?