bit和int
char差不多,只不过char=8位,
bit=1位而已。都是变量,编译器在编译过程中分配地址。除非指定,否则这个地址是随机分配的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,和Windows下VC中的BOOL类似。
sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi
xxx
=
REGE^6的定义,这个sbit量就确定地址了。
bit和sbit的最大区别在于,bit是定义一个变量sbit经常用在寄存器中的,方便对寄存器的某位进行操作。
^是位运算符中的异或运算符,也称XOR运算符。它的规则是若参与的两个二进位相同,则结果为0(假),不同则为1(真)。即0^0=0,0^1=1,1^0=1,1^1=0再如下面:00111001
(^)
00101010
----------------
00010011
等价于while(x%y!=0)while(表达式)只有但表达式成立才执行while语句,否则跳出循环。
所以只有当y不能整除x时,即x%y!=0时,执行while语句
所以while(x%y)等价于(x%y!=0)