單片機c語言循環左移
發布時間: 2024-07-04 19:07:14
⑴ C語言和單片機中的左移右移
# include "reg51.h" // 包含頭文件
#define uchar unsigned char
void 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.2s
j= j<<1; // 左移1位
}
j=0x80; // 設置右移初始值j為0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}
⑵ C語言中的循環移位計算
因為是按8進制輸入的,8進制的24換成10進制就是20,換成2進制就是00010100(以1位元組表示)。而00010100循環右移2位後就是00000101,即10進制孝棚沖的5,而5按8進制輸出(輸出和腔格式為%o),就是5。
00010100循環左移2位後是01010000,用10進製表示就是80,而80按8進制輸出(輸巧殲出格式為%o),就是120。
熱點內容