打印

如何实现64位无符号乘法

[复制链接]
3694|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
C语言里,实现64位无符号乘法
unsigned long long a,b,c;
a = b * c;
这个能实现吗?
使用Keil uVision4 测试时,发现当a>0x80000000,计算异常。
哪位测试过呢?
沙发
lllaaa| | 2012-6-7 08:42 | 只看该作者
自己模仿竖式运算写一个啊。只不过笔算的时候是按照单个数字来运算。你可以用long为单位去算

使用特权

评论回复
板凳
IJK| | 2012-6-7 10:44 | 只看该作者
本帖最后由 IJK 于 2012-6-7 10:46 编辑

64位无符号乘法是个有趣的话题,STM32应该支持它。我用 IAR EWARM,用simulator进行调试,芯片用STM32,实测没有问题。问题的关键是进行强制类型转换。

2张图可以说明问题:

使用特权

评论回复
地板
IJK| | 2012-6-7 10:50 | 只看该作者
多说一句,Keil MDK应该也支持64位无符号乘法。
当然,一定程度上这取决于用的芯片。

使用特权

评论回复
5
王紫豪| | 2012-6-7 21:27 | 只看该作者
MDK 是支持的; 当然, 应该说 realview 支持

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

93

帖子

0

粉丝