P0=(P0<<1)|(P0>>7);什么意思

如题所述

你看懂你写的是什么东西吗。。。主函数先给p0赋值00000001,然后又对p0赋值11111110;现在的p0是0xfe了,p0左移一位你确定是0x00吗,,如果是。。这时候p0是00000000,,然后后面的三个移位函数怎么执行呢。。。都是0.注释掉第一行后面的的实现移位吗。。这貌似和第一行都没有关系的吧。函数从第二行开始都出现11111110,左移一位或者右移一位都不会是0。我只能帮你分析下。。问题还要自己好好看看。。。这个如果真有问题,或许是p0《1问题,这个函数at51和stc不同吧。。。一个是P0一直实现左移。一个是P0左移一位。。。所以你要注释掉P0=0xfe;P0=P0<<1试一下。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-08
好好看看。。。这个如果真有问题,或许是p0

P0=p0<<=1是什么意思
P0等于p0,他们都远远小于1

P0=P0<<7|P0>>1;什么意思
属于单机片C语言

51单片机中C语言中P1=P1<<1|P1>>7怎么理解呀 求高手指点
实际上就是:将P1的bit7和bit0 提取出来,然后分别重新置于P1的bit0和bit1位置,其余位均清0

P0<<=1 单片机编程中这个什么意思啊?
这句话的意思是右移 加入P0开始是00000001 经过P0<<=1(即P0=P0<<1)就变成了00000010 这个右移8次就把1移出去了,就会变成00000000即十进制的0

我是单片机设计入门菜鸟,想问高手一个问题!
1 = 0x91就是起代号,当然,sfr 也是起代号,不过一个是一组引脚一个是一个引脚,所以命令不一样)51单片机是可以位寻址的,所以有这些命令,某些别的单片机,有的不能位寻址,要对位操作就比较麻烦。还有的可以位寻址,但计算方式比较复杂,不象51这样, p1.1就是0x91,p1.2就是0x92了。

#define beep 1<<7 这种定义是什么意思
你的板子上连接的就是P0口。不是你能改的,这个是定义符号数的语句,这个定义的数1被左移8位

P0=~(1<<c);什么意思
1左移c位,然后取反,赋值给P0

C语言中 P0=~(1<<K); 是什么意思??求详解
1<<2, 用四位二进制数表示就是0100,如果赋值给int, 值就是4 ~是反转的意思, ~0100就是1011 比如一个short, 1<<2就是0000000000000100 ~(1<<2)就是1111111111111011 由于最高位是1, 所以这个数字如果是signed,就是负数,unsigned,就是一个很大的正数 signed short型数字1111111111111011 值可以这样...

P1 = 1<<(P0 & 7); 单片机C语言 这句话是什么意思
P0与7位与操作,即P0的每一位分别和0000 0111进行逻辑与运算,然后 1左移的P0&7位数。假设P0=1111 1111 那么P0&7=0000 0111=7;那么P1=1<<7=1000 0000

单片机里头,这个<<是啥意思呀,例子在下面?
<<是左移运算符。上面举例的语句的意思是,将0x01这个数据向左移动i位,然后按位取反,再赋值给P2。

相似回答