VSC++=》 不用%求余分解整数,不用%求余。

经由51蛋骗鸡程序验证用除法减法乘法影响延时较小。

学习最基础的东西有益与理解高级的东西,因为有了基础的支持,学习51的确让我更理解最基础的东西,比如硬件带的加减乘除法器是基础,求余运算是在这个基础上扩展来的,由于写法不同,求余运行的效果就不同,比如可直接调用人家写好了的%运算符,但我喜欢直接用加减乘除法求余其速度更胜于调用%运算符,为什么?因为理解其基础原理,%运算符其内中是怎么实现的没去深究,但从2种运行速度足可验证理解和应用基础有意义。

void 不用求余分解整数()
{//不用求余分解整数,缘由51蛋骗鸡求余运算周期严重影响延时,重新设计分解整数,提高效率已验证。
	int a = 123456789, j = a;
	while (a)cout << (j - (a /= 10) * 10) << ends, j = a;
}
int 除法乘法减法求余(int shu, int mo)
{
	int yu = shu;
	return (yu -= (yu / mo) * mo);
}

	int a = 13579;
	while (a)cout << a << ends << 除法乘法减法求余(a, 2) << ends , (a /= 10);

 

#include "reg52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴0~15
void main()
{
	unsigned char Xd=0,hmq=0;
	unsigned int Ys=47474, a=65432,j=a;
	while(1)
	{
		if(++hmq>=247){bipo=~bipo;hmq=0;}//较少影响延时时间
		if(--Ys==0)
		{
			Ys=47474;
			P2=~smgduan[(j - (a /= 10) * 10)];//数码管静态显示
			if(!a)j=a=65432;else j = a;
		}
//		if(Ys%4747==0)bipo=~bipo;//使用求余运算花费较多时钟周期严重影响延时时间
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值