前言
大家都知道51单片机是有乘法、除法指令的,不管是用C语言还是汇编语言,都是可以直接计算乘法、除法的,我以为+,-,*,/ 这些算术运算是单片机的标配,而我公司使用的应广单片机居然没有乘法、除法指令,应广单片机使用的是mini-C语言,和C语言有点像,可以在C代码中穿插汇编指令。但mini-C不支持for循环,也不支持函数传参,所以一下代码都没有传参,也没有for循环。
乘法
思路0
我们都知道左移1位(<<1)相当于乘2,左移2位(<<2)相当于乘4,但想乘3、乘5、乘6、乘7怎么办?
在已知要乘多少时,我们可以考虑这种方法
int a=13;
b=a<<1;//b=a*2
b=(a<<1)+a;//b=a*3
b=a<<2;//b=a*4
b=(a<<2)+a;//b=a*5
b=(a<<2)+a+a;//b=a*6
b=(a<<3)