c语言 int a,b=65536;a=b;printf("%d",a) 为什么得0啊
答案:3 悬赏:20 手机版
解决时间 2021-02-18 14:06
- 提问者网友:听门外雪花风
- 2021-02-17 18:24
c语言 int a,b=65536;a=b;printf("%d",a) 为什么得0啊
最佳答案
- 五星知识达人网友:七十二街
- 2021-02-17 19:06
a,b都是整型变量(十六位二进制数),65536超出了它们的范围,它的二进制值是1后面十六个0,把它存放到a或b里面就会产生溢出,于是只取后面的十六位数,也就是十六个0,故结果输出0
全部回答
- 1楼网友:归鹤鸣
- 2021-02-17 21:14
不得0,得65535啊。追问题少写了 c语言 long int b=65536;追答那也是65536啊。
- 2楼网友:大漠
- 2021-02-17 20:16
如果int是两字节、即16位的话,65536超出了两字节能表示的范围,其低16位为全0,所以为0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯