C语言中“|=”vs“&=”-创新互联
一、&= ——>“0位 置0,其他位不变”
将等号左边这个数的某一位(等号左右两边数据的位一一对应,等号右边为0的这一位)置0,
其他位(等号右边为1的所有位)保持不变
二、|= ——>“1位 置1,其他位不变”
将等号左边这个数的某一位(等号左右两边数据的位一一对应,等号右边为1的这一位)置1,
其他位(等号右边为0的所有位)保持不变
ef:
//将寄存器M4_SYSREG_PWR_PDWKE1的最后一位置1,其他位不变
M4_SYSREG_PWR_PDWKE1 |= 0x01;
//将寄存器M4_SYSREG_PWR_PDWKE1的最后一位置0,其他位不变
M4_SYSREG_PWR_PDWKE1 &= ~0x01;// (M4_SYSREG_PWR_PDWKE1 &= 0xfe)
第一句,将前面这个寄存器的最后一位置1,其他位不变
第二句,将前面这个寄存器的最后一位置0,其他位不变
&= 一般用在复位,即清零,将=号后面0的位清零,1的位保持不变。
|= 一般用在置位,即置1, 将=号后面1的位置1,0的位保持不变。
a &= b,就是将a与b做按位“与”运算,结果赋值给a,也就相当于a = a & b;
a |= b就是将a,b 做按位”或“运算,结果给a,相当于a = a | b;
(&与运算只有1&1才等于1,其余1&0、0&1、0&0都为0;|或运算只有0&0才等于0,其余1&0、0&1、1&1都为1)
&=看0的位;|=看1的位
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:C语言中“|=”vs“&=”-创新互联
文章位置:http://myzitong.com/article/copgce.html