标题: scan1=P1&0xf0是什么意思。 [打印本页]

作者: 君成    时间: 2016-4-9 22:49
标题: scan1=P1&0xf0是什么意思。


scan1=P1&0xf0是什么意思。
temp=scan1|scan2是什么意思。
c=*s是什么意思。
for(;;)括号里面有俩个冒号什么意思
temp=_crol_(temp,1)是什么意思



作者: creator    时间: 2016-4-9 23:16
前面两个是逻辑运算
作者: liuyimao485812    时间: 2016-4-10 01:05
scan1=P1&0xf0 低4位清零。
temp=scan1|scan2 是或运算。
c=*s C=指针S所指定地址单元的值。
for(;;) 无限循环
temp=_crol_(temp,1):
举个例子:假如原来 temp = 0xBA;即二进制的(10111010),
temp=_crol_(temp,1);其执行过程是这样的,
1,首先把temp循环左移,结果是 01110101,即temp=0x75;
2,把循环后的结果送给temp,所以,temp的值是0x75
作者: liuyimao485812    时间: 2016-4-10 01:06
scan1=P1&0xf0 低4位清零。
temp=scan1|scan2 是或运算。
c=*s C=指针S所指定地址单元的值。
for(;;) 无限循环
temp=_crol_(temp,1):
举个例子:假如原来 temp = 0xBA;即二进制的(10111010),
temp=_crol_(temp,1);其执行过程是这样的,
1,首先把temp循环左移,结果是 01110101,即temp=0x75;
2,把循环后的结果送给temp,所以,temp的值是0x75
作者: liuyimao485812    时间: 2016-4-10 01:06
scan1=P1&0xf0 低4位清零。 temp=scan1|scan2 是或运算。 c=*s C=指针S所指定地址单元的值。 for(;;) 无限循环 temp=_crol_(temp,1): 举个例子:假如原来 temp = 0xBA;即二进制的(10111010), temp=_crol_(temp,1);其执行过程是这样的, 1,首先把temp循环左移,结果是 01110101,即temp=0x75; 2,把循环后的结果送给temp,所以,temp的值是0x75
作者: 君成    时间: 2016-4-10 07:45
liuyimao485812 发表于 2016-4-10 01:05
scan1=P1&0xf0 低4位清零。
temp=scan1|scan2 是或运算。
c=*s C=指针S所指定地址单元的值。

谢谢你的解答
作者: 加载中    时间: 2016-4-10 10:42
temp=_crol_(temp,1)是左移
作者: tuzi    时间: 2016-4-10 11:46
上面讲的很详细;
补充一小点吧~
temp=_crol_(temp,1);意思是把temp循环左移,每次左移一位,如果1变成2,就代表每次左移两位。
_crol_()是左移函数;
_cror_()是右移函数;
使用这两个函数需要#include<intrins.h>,因为这两个函数包含在这个头文件中
作者: dengrui    时间: 2016-4-11 15:06
第一行是P1口的值与0xf0相与
作者: raim8888    时间: 2016-4-11 16:44
第一行是P1口的值与0xf0相与




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1