从学习单片机以来,就一直被强调,单片机计算能力有限,进行数据乘、除操作十分耗费资源。 本人最近在研究51操作系统,接触底层比较多,昨晚突发奇想,想要设计基于位操作的乘、除算法。经过仔细思考和规律分析,摸索出一个可行的算法,如果担心、不确定MCU的效率,可供使用。话不多说,直接上代码: //------------------------------------------------------------------ // 功能: 使用位操作实现数据的乘法运算 // 输入: x-乘数 // y-被乘数 // 输出: 无(使用VC++编写,结果会直接打印在屏幕上) //----------------------------------------------------------------- void multiple(int x, int y) { int operate = x, operated = y, result = 0; char i = 0; do { if(operate&0x01) { result += (operated<