C语言和单片机中的左移右移

Python014

C语言和单片机中的左移右移,第1张

# include "reg51.h" // 包含头文件#define uchar unsigned charvoid delay02s(void) // 延时0.2s子程序{unsigned char i,j,k;for ( i=2;i>0;i-- )for (j=200;j>0;j-- )for (k=250;k>0;k-- );}void main (void) // 主函数{uchar i,j;while (1) // 死循环{j=0x01; // j初始化为0x01,左移初始值for(i=0;i<8;i++) // for循环语句,完成8个循环{P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出delay02s( ); // 延时0.2sj= j<<1; // 左移1位}j=0x80; // 设置右移初始值j为0x80for (i=0;i<8;i++){P1= ~ j;delay02s( );j= j>>1; // 右移1位}}}

用这种移位语句,就是这种结果。

你试试:_crol_()和_cror_()移位函数。

需要先加上头文件:

#include<intrins.h>