怎样才能得到正确结果.

2019-07-22 13:50发布

unsigned long cnt32;
unsigned  int x,y;
x=400;
y=400;

cnt32 = x*y;     编译正常不报警,但运算结果为0x27100的低16位0x7100,而不0x27100

cnt32 = 400*400;     报警提示 integer operation result is out of range

请问,怎样才能得到正确结果.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
heweibig
1楼-- · 2019-07-23 07:55
就是一开始要添加的头文件和源文件什么的
yszong
2楼-- · 2019-07-23 09:50
好的,我找一下发给你哈
vivilzb1985
3楼-- · 2019-07-23 14:20
jiajs 发表于 2016-6-9 15:30
cnt32 =(unsigned long ) x*y;

楼上强制进行类型转换的,是可以的。
Brand2
4楼-- · 2019-07-23 14:24
unsigned long是几位啊,提示是已溢出了
迪卡
5楼-- · 2019-07-23 19:58
 精彩回答 2  元偷偷看……
jimmhu
6楼-- · 2019-07-23 23:44
一般都是变量定义的

一周热门 更多>