MPLAB IDE乘法计算结果不正确
最近程序用到乘法计算,程序验证始终不正常。除错定位到乘法计算出了错。乘法计算如上图,以上变量long均为无符号长整型,乘数为负数时计算结果一直不正常。正确结
果应该是0xFFF80008,调试仿真发现在乘法计算时调用了一个无符号的乘法函数,不知
什么原因,难道说语法上还有什么规范要求,还请坛友赐教! 变量long均为无符号长整型,乘数为负数时 本帖最后由 lcw_swust 于 2019-1-18 08:15 编辑
不管有无符号,结果似乎都应该是0xFFF80008。
那编译器算出来是多少?
main最后怎么没有while(1) 杠个精:
1.MPLAB IDE是调试环境
2.负责乘法计算编译的是编译器,你用的是HI-TECH PICC lcw_swust 发表于 2019-1-18 08:08
不管有无符号,结果似乎都应该是0xFFF80008。
那编译器算出来是多少?
main最后怎么没有while(1) ...
无符号最高位不会到FF,结果等下看一下。 不好意思,忘写了编译环境MPLAB IDE8.82 + PICC 這是硬體乘法器嗎?看起來有點不像,之前看過硬體乘法器語法,似乎只能用ASM語言。 本帖最后由 at90s 于 2019-5-8 22:58 编辑
编辑原因,看错帖子了。不好意思 本帖最后由 at90s 于 2019-5-8 22:58 编辑
编辑原因,看错帖子了。不好意思 看楼主的表述,似乎入口参数不对,函数原型要求是无符号数,还传个负数给乘数。应该把负的乘数取绝对值,返回结果再加上符号。
页:
[1]