c语言的左移运算符
temp=0x01;for(i=0;i<8;i++){P1=~temp;delay(1500);temp<<=1;}为什么计算出来的数据了二进制1111111011111...
temp=0x01;
for(i=0;i<8;i++)
{
P1=~temp;
delay(1500);
temp<<=1;
}
为什么计算出来的数据了
二进制 1111 1110
1111 1101
1111 1011 .....
是不是把最前面的1拿到最后面,然后其他数据都前进一位?
加入上面正确的话,那为什么下面这个是正确的
temp=0x7F;
for(i=0;i<8;i++)
{
P1=temp;
delay(100);
temp>>=1;
}
他的答案是 二进制 0111 1111 ;0011 1111; 0001 1111。。。这样的。
请问为什么啊
~temp只是求反并不改变temp本身的值, 可以详细点跟我说下嘛?我看不懂! 展开
for(i=0;i<8;i++)
{
P1=~temp;
delay(1500);
temp<<=1;
}
为什么计算出来的数据了
二进制 1111 1110
1111 1101
1111 1011 .....
是不是把最前面的1拿到最后面,然后其他数据都前进一位?
加入上面正确的话,那为什么下面这个是正确的
temp=0x7F;
for(i=0;i<8;i++)
{
P1=temp;
delay(100);
temp>>=1;
}
他的答案是 二进制 0111 1111 ;0011 1111; 0001 1111。。。这样的。
请问为什么啊
~temp只是求反并不改变temp本身的值, 可以详细点跟我说下嘛?我看不懂! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询