c 语言中 bit与sbit的区别

Python016

c 语言中 bit与sbit的区别,第1张

bit和sbit都是C51扩展的变量类型。

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)