c++32位表示最大数2^32=4294967296,unsigned int a=5000000000,计算机结果不是5亿-2^32吗?
答案:5 悬赏:80 手机版
解决时间 2021-11-27 12:49
- 提问者网友:且恨且铭记
- 2021-11-27 05:48
c++32位表示最大数2^32=4294967296,unsigned int a=5000000000,计算机结果不是5亿-2^32吗?
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-11-27 06:42
首先32位能表示的最大整数是2^32 - 1 = 4294967295
其次,对于常量,编译器会尝试能表示数值的类型。如果int, unsigned int, long, unsigned long不能表示,支持C99的编译器会继续尝试long long和unsigned long. long long和unsigned long long是64位的,足以表示50亿。
所以能得出结果。
其次,对于常量,编译器会尝试能表示数值的类型。如果int, unsigned int, long, unsigned long不能表示,支持C99的编译器会继续尝试long long和unsigned long. long long和unsigned long long是64位的,足以表示50亿。
所以能得出结果。
全部回答
- 1楼网友:执傲
- 2021-11-27 11:41
unsigned int 错了,改成long
- 2楼网友:夜余生
- 2021-11-27 11:14
32位表示的最大数是2^32-1
- 3楼网友:思契十里
- 2021-11-27 09:46
类型弄错了,已经超出unsigned int 的范围了,应该有long型
- 4楼网友:鸠书
- 2021-11-27 08:13
到底是5亿还是五十亿?
不知道你的编译器是什么,目测应该是支持c99标准的,c99标准的编译器在编译计算数值时,会依次尝试 long, unsigned long,long long, unsigned long long,再往上就会警告,这里你的数应该不是存放的变量里的,而是直接写出来的,如果放在变量里,必然报错。
不知道你的编译器是什么,目测应该是支持c99标准的,c99标准的编译器在编译计算数值时,会依次尝试 long, unsigned long,long long, unsigned long long,再往上就会警告,这里你的数应该不是存放的变量里的,而是直接写出来的,如果放在变量里,必然报错。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯