嵌入式c语言中 &= ~和|=各是什么意思

例如下列语句,小弟实在不懂这两个符号的意思,望高人指点
rINTPND |= BIT_UART0;
rINTSUBMSK &= ~BIT_SUB_RXD0;

&是按位与(双目运算符,需要2个操作数)
|是按位或(双目运算符)
~是按位非(单目运算符)

1&0=0, 0&1=0, 0&0=0, 1&1=1
1|0=1, 0|1=1, 0|0=0, 1|1=1
~1=0,~0=1

a|=b等价于a=a|b;
同理a&=b等价于a=a&b

所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0
rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)

按位运算就是运算的时候先将操作数换算成二进制数来进行计算
譬如3 & 5就是011 & 101=001
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-30

&是按位与(双目运算符,需要2个操作数)

|是按位或(双目运算符)

~是按位非(单目运算符)

1&0=0, 0&1=0, 0&0=0, 1&1=1

1|0=1, 0|1=1, 0|0=0, 1|1=1

~1=0,~0=1

a|=b等价于a=a|b;

同理a&=b等价于a=a&b

所以rINTPND |=BIT_UART0;等价于rINTPND=rINTPND | BIT_UART0

rINTSUBMSK &= ~BIT_SUB_RXD0等价于rINTSUBMSK = rINTSUBMSK &(~BIT_SUB_RXD0)

按位运算就是运算的时候先将操作数换算成二进制数来进行计算

譬如3 & 5就是011 & 101=001

扩展资料

/* NAND FLASH (see S3C2410 manual chapter 6) */typedef struct {

S3C24X0_REG32   NFCONF;

S3C24X0_REG32   NFCMD;

S3C24X0_REG32   NFADDR;

S3C24X0_REG32   NFDATA;

S3C24X0_REG32   NFSTAT;

S3C24X0_REG32   NFECC;

} S3C2410_NAND;static S3C2410_NAND * s3c2410nand = (S3C2410_NAND 

*)0x4e000000;volatile unsigned char *p = (volatile unsigned char *)&s3c2410nand->NFSTAT;

参考资料:百度百科 - 嵌入式c语言

本回答被网友采纳
第2个回答  推荐于2018-03-28
&= ~ 是关闭的意思
|= 是打开的意思本回答被网友采纳
第3个回答  2021-09-26
砂铰 不想做好人,也不想做坏人,只想做你的心上人
第4个回答  2021-09-19
众蓬 夫妻之间的吵架,就像生活中的感冒很难避免——老田