永发信息网

C语言问题 请问为何d输入65525 输出为何是-11?

答案:2  悬赏:0  手机版
解决时间 2021-03-04 11:44
C语言问题 请问为何d输入65525 输出为何是-11?
最佳答案
%u : 65525 表示成2进制就是 ‭1111 1111 1111 0101‬
%d : 2进制 第一位是符号位1 为负数
%d : -1的2进制是  1111 1111 1111 1111‬
同样你之前的65525用%d,他就是这个结果
负数二进制
网页链接
追问不太明白追答一个字节16位
%u 65525 写入内存就是
1111 1111 1111 0101‬
因为%u没有符号位,当用%d输出这个数字时,因为%d有符号位 所以这个数就是个负数,结果就是-11.
意思就是这一堆二进制数%d就表示-11
全部回答
老式编译器,把 int 处理成 short int, 65525 数值范围超出了 short int 允许范围。
所以 65525 输出为 -11。
现在用的编译器,把 int 处理成 long int, 65525 不超界。
为了检验此结论,你可以用 %hd 格式 输出为短整型,体会一下。
int d=65525;
printf("%d, %hd\n", d, d);
输出: 65525, -11
[若输入用 scanf("%d, %o, %x, %u",&a,&b,&c,&d); // 数据 100,100,100,65525,结论还是如此]。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
变声期可以喝胖大海吗?
川味麻辣面在哪里啊,我有事要去这个地方
前光村地址在什么地方,想过去办事
找一首英文歌heartbeats amy 跟这首歌差不多
盼盼晶晶壁挂炉显示e7什么问题
大连市第二十一中学(东门)在什么地方啊,我要
一千米减多少米等于三百米
天诚科技在哪里啊,我有事要去这个地方
理科和工科哪个就业更好?
马桶冲水量3/6和3/4.5哪个要好点
华一铝材地址在哪,我要去那里办事
芝士片不拉丝的原因
岳阳楼区岳阳随缘宾馆(职院店)怎么去啊,谁知
如何辨别真假S999银
我大安市的想在长春办理复婚需要什证件
推荐资讯
我想同时修三种语言,英语、日语、西语,请问
做梦梦见猫说话
交通事故后,当事人死亡,还能做伤残鉴定吗
惠州碌鹅做法
璧山金冠汽车河西工业园区路线
昭通学院-教学楼6在什么地方啊,我要过去处理
f(x)=(x-1)*x^(3/2)的极限 要用求导的方法算
某段路程,以每分80米得速度前进,可提前15分钟
晁盖攻打曾头市,不带军师吴用可以理解,为何
烟草花叶病毒的遗传物质是A. 核苷酸B. DNAC.
农村信用社回龙场分社地址在什么地方,想过去
海尔xqg80-bd1626 8公斤洗衣机在单脱水时声音
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?