具体使用方法如下:
1、左移运算符(<<)
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a
=
a
<<
2
将a的二进制位左移2位,右补0,
左移1位后a
=
a
*
2
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以汪颂2。
2、右移运算符(>>)
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右困唯郑边丢弃。
*** 作数每右移一位,相当于该数除以2。
例如:a
=
a
>>山旅
2
将a的二进制位右移2位。
左补0
or
补1
得看被移数是正还是负。
# 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位
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)