共2条
1/1 1 跳转至页
32 怎么实现32位乘法????

问
用C语言,如c=a*b,那么a,b,c的数据类型分别是什么???
答 1:
:)int * int = int,long * long = long,DSP里面16位乘法,结果是32位的,只是c语言里面自动截断了,所以,做16 * 16,要先把16变成32位
答 2:
我现在做的是32位数相乘,不是十六位假设
long a=0xffffabcd;
long b=0xabcdffff;
long *d;
(*d)=a*b;
结果(*d)=0x7D2DF65433,
而事实上 a*b=ABCDC77D2DF65433;
怎么把前面的六位数找回来????
谢谢版主 答 3: 你是在16位的DSP上面对吧?那只有自己写长乘,你可以借鉴DSP的库源代码,lmul
long a=0xffffabcd;
long b=0xabcdffff;
long *d;
(*d)=a*b;
结果(*d)=0x7D2DF65433,
而事实上 a*b=ABCDC77D2DF65433;
怎么把前面的六位数找回来????
谢谢版主 答 3: 你是在16位的DSP上面对吧?那只有自己写长乘,你可以借鉴DSP的库源代码,lmul
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |