请教大神:ARM的32位乘法溢出如何解决

2019-12-24 18:39发布

        uint32_t   e,d,y,x;
        x=0xffffffff;y=100;
           e=(x/1000)*y;
        d=(x*y)/1000;
仿真结果e和d的结果不相同。应是x*y溢出32位所致,请教如何解决!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
hefeizdl
1楼-- · 2019-12-27 05:49
ywlzh 发表于 2017-8-27 12:41
这个目前还没发现好的办法 ,毕竟基本的整数数据类型都有范围牵制。

http://blog.csdn.net/Jason_Ranger/a ...

xuzhiping9889
2楼-- · 2019-12-27 10:52
hefeizdl 发表于 2017-8-26 11:37
”e=(x/1000)*y;“这个是避免溢出现象的写法。

这2个结果怎么可能一样啊

一周热门 更多>