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。
-32768的补码形式就是1000000000000000。
全部回答
- 1楼网友:白昼之月
- 2021-11-15 17:59
你的变量a是int型的吧,最大为32767,溢出了追问溢出了就变成负的吗?
- 2楼网友:煞尾
- 2021-11-15 17:00
%d表示的是有符号输出,它不管你的变量是有符号还是无符号的面%u是无符号unsigned 是无符号整型变量,就是只能为正数的整数程序先定义a并初始化,在
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯