C语言中“|=”vs“&=”-创新互联

一、&= ——>“0位 置0,其他位不变”
将等号左边这个数的某一位(等号左右两边数据的位一一对应,等号右边为0的这一位)置0,
其他位(等号右边为1的所有位)保持不变

创新互联公司主营墨竹工卡网站建设的网络公司,主营网站建设方案,app开发定制,墨竹工卡h5小程序设计搭建,墨竹工卡网站营销推广欢迎墨竹工卡等地区企业咨询

二、|= ——>“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