各位大侠帮我看看下面a=_crol_(a,j);这个语句是怎么补齐的,详细说下,不太明白啊!

#include<reg52.h> //52单片机头文件
#include <intrins.h> //包含有左右循环移位子函数的库
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{ //delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j<8;j++)
{
for(i=0;i<8-j;i++) //左移
{
P1=a; //点亮小灯
delay(200); //延时200毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=_crol_(a,j); //补齐,方便下面的左移一位
P1=0xff; //全部关闭
a=a<<1; //左移一位让多一个灯点亮
}
}
}

这是个内部函数,用于循环左移,与<<不同之处是前者移出的补在后面,后者移位后补0
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜