永发信息网

32位单片机计算两个int16的数相乘和两个int32的数相乘,所花的周期一样吗?

答案:2  悬赏:70  手机版
解决时间 2021-02-10 09:00
  • 提问者网友:相思似海深
  • 2021-02-09 18:37
如题
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-02-09 19:31
一般是一样的。


这个具体可以查一下芯片内核指令代码的手册,如果有硬件乘法指令的系统,16位运算与32位运算所用时间,一般是一样的。

楼上的忽略了32位机这个前提。一般在32位机上是会有硬件乘法指令或者是乘法器部件,是可以在单周期内计算32位乘法的。而16位的乘法,一般都是扩展成32位的乘法来实现,所以说时间一般来说是一样的,都是一个周期。
特殊的情况包括,
1. 没有硬件乘法,使用移位加程序模拟乘法功能,32位的乘法时间可能会比16位乘多一倍,当然这还取决于乘法模拟算法的具体实现。
2. 用32位实现16位乘法,可能需要对16位数进行额外的扩展调整,这时是16位的慢一点。一般在C语言中就是根据系统字长规定int的类型,所以在C语言中如果不考虑移植,多使用int可能会提高编译的效率,在32位机上最好使用32位的数据进行计算反而更快一些。
全部回答
  • 1楼网友:污到你湿
  • 2021-02-09 20:10
肯定是不一样的啊,一个16位,一个是32位 就像你做1+1和10+10是一样的 1+1只要一次计算就好 10+10要三次
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯