单片机移位运算符和循环移动函数

比如P2=EF;   1110 1111

P2<1;表示左移1位,移位运算符是在低位自动补0;移动之后的二进制数:1101 1110

P2=_crol_(P2,1);表示循环左移,它不会补0啥的,真的是循环;移动之后的二进制数:1101 1111

while(1)
	{
		P2=0XEF;     //1110 P24位选码选中
		for(i=1;i<=4;i++){
			P0=led[i]; //段码位赋值
			for(k=0;k<20;k++);
			P0=0X00;
			//P2<<1;
			P2=_crol_(P2,1);
		}													
	}

如果用字符型二进制循环左移函数,移动过程是:1101 1111、   1011 1111、 0111 1111 ;

如果用左移运算符,移动过程是:1101 1110 、1011 1100、0111 1000;  

注:如果用循环移动函数必须要包含头文件intrins.h

posted @ 2022-05-31 13:13  iZJ"Qq4577105  阅读(889)  评论(0编辑  收藏  举报