永发信息网

mian () ( unsigned a=32768 printf("a=%d/n",a) ) 答案为a=-32768 为什么以第一位为符号位,成了负数?

答案:3  悬赏:60  手机版
解决时间 2021-11-16 02:16
  • 提问者网友:你挡着我发光了
  • 2021-11-15 14:51
mian () ( unsigned a=32768 printf("a=%d/n",a) ) 答案为a=-32768 为什么以第一位为符号位,成了负数?
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-11-15 15:34
在TC2.0环境下是a=-32768,因为这个环境int是占两个字节,以补码形式存放,最高位是符号位,范围是32767~-32768,a=32768在计算机中存储为1000000000000000,高位是1,所以为负数,而
-32768的补码形式就是1000000000000000。
全部回答
  • 1楼网友:白昼之月
  • 2021-11-15 17:59
你的变量a是int型的吧,最大为32767,溢出了追问溢出了就变成负的吗?
  • 2楼网友:煞尾
  • 2021-11-15 17:00
%d表示的是有符号输出,它不管你的变量是有符号还是无符号的面%u是无符号unsigned 是无符号整型变量,就是只能为正数的整数程序先定义a并初始化,在
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯