永发信息网

帮我解释一下这题的答案为什么是这样的?急求!!

答案:2  悬赏:70  手机版
解决时间 2021-05-03 01:12

#include"stdio.h"
main()
{
long int ll_1=48;
long int ll_2=65535;
long int ll_3=65536;
short int sx_1;
short int sx_2;
short int sx_3;

sx_1=(short)ll_1;
sx_2=(short)ll_2;
sx_3=(short)ll_3;

printf("sx_1=%d\n",sx_1);
printf("sx_2=%d\n",sx_2);
printf("sx_3=%d\n",sx_3);

getch();
}

答案是:48 -1 0

最佳答案

对于长整形的65536转换为二进制为1 0000 0000 0000 0000由于短整型只有16为,所以实际上是0000 0000 0000 0000所以为0,


而65535为1111 1111 1111 1111,最高位符号位为1,所以是负值,由于计算机数据是按补码形式保存的,正数补码与原码相同,前面那个65536等于0可以不处理,但是这个是负数,补码是符号位以外的部分取反后加1,所以减1在取反后也就是原码了,首位符号位不变减1,1111 1111 1111 1110,取反1000 0000 0000 0001,所以是-1.

全部回答

short 类型的范围是-32768~32767,65535越界了。

当short类型数据是32767时,如果再加1就是-32768,从而形成一个循环。

当你输入一个数为32768时,用short型显示就是-32768,而32769==>-32767

从而65535-32768-32768=-1//减第一个32768是使得该数变成-32768,第二个32768则是因为本数已经变成-32768了,记它加上乘余的数.

同理,65536为0

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
六盘水市钟山区育英中学地址在什么地方,想过
我的手到冬天就容易红通通的,有什么好办法吗
孕婴世界谢湾店这个地址在什么地方,我要处理
在南通查性激素六项大概要多少钱?急急
怎样查自己是多少兆网速?
鬼泣4第一关BOSS怎么打
有没有一种爱可以永恒?
天籁杯中华诗词大赛,怎么参加中华诗词大赛
QQ签到活动5级礼包我领了不见奖品
孕妇可以用玫琳凯的基础护肤品吗
新飞飞牧师问题??
求魔兽争霸中死亡骑士出场的背景音乐,就要高
普桑现在还产吗?是什么价位的?
18岁的我该选择哪种BB霜?
X091/Y0244(路口)我想知道这个在什么地方
推荐资讯
网络想你的句子,《想你》中的经典句子
这段JS代码如何才能起作用
刀锋有何特点?
影视动画和影视后期哪个有发展前途?
为什么飞行岛图标暂停啊?
上老芳村这个地址在什么地方,我要处理点事
初次谈恋爱一年,男朋友怎样对你,你觉得他已
急!急需一张从山东烟台到长沙的学生火车票!
A8商务酒店这个地址在什么地方,我要处理点事
如何安裝XP
成吉思汗2十二个哪个职业容易升级?、
和男友分手后,我心里很难过,很难忘记和他的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?