face9 发表于 2019-1-18 01:28:42

MPLAB IDE乘法计算结果不正确

最近程序用到乘法计算,程序验证始终不正常。除错定位到乘法计算出了错。乘法计算
如上图,以上变量long均为无符号长整型,乘数为负数时计算结果一直不正常。正确结
果应该是0xFFF80008,调试仿真发现在乘法计算时调用了一个无符号的乘法函数,不知
什么原因,难道说语法上还有什么规范要求,还请坛友赐教!

khuohuo 发表于 2019-1-18 07:17:47

变量long均为无符号长整型,乘数为负数时

lcw_swust 发表于 2019-1-18 08:08:52

本帖最后由 lcw_swust 于 2019-1-18 08:15 编辑

不管有无符号,结果似乎都应该是0xFFF80008。
那编译器算出来是多少?
main最后怎么没有while(1)

yoursnemo 发表于 2019-1-18 10:59:10

杠个精:
1.MPLAB IDE是调试环境
2.负责乘法计算编译的是编译器,你用的是HI-TECH PICC

face9 发表于 2019-1-18 11:56:32

lcw_swust 发表于 2019-1-18 08:08
不管有无符号,结果似乎都应该是0xFFF80008。
那编译器算出来是多少?
main最后怎么没有while(1) ...

无符号最高位不会到FF,结果等下看一下。

face9 发表于 2019-1-18 11:59:06

不好意思,忘写了编译环境MPLAB IDE8.82 + PICC

K7toubleaz 发表于 2019-5-8 21:50:40

這是硬體乘法器嗎?看起來有點不像,之前看過硬體乘法器語法,似乎只能用ASM語言。

at90s 发表于 2019-5-8 22:52:01

本帖最后由 at90s 于 2019-5-8 22:58 编辑

编辑原因,看错帖子了。不好意思

at90s 发表于 2019-5-8 22:55:37

本帖最后由 at90s 于 2019-5-8 22:58 编辑

编辑原因,看错帖子了。不好意思

zmh169 发表于 2019-5-9 15:12:53

看楼主的表述,似乎入口参数不对,函数原型要求是无符号数,还传个负数给乘数。应该把负的乘数取绝对值,返回结果再加上符号。
页: [1]
查看完整版本: MPLAB IDE乘法计算结果不正确