一、使用移位获取特定位为1的二进制数
例1.对于一个整形数a,通过运算使其bit3~bit7为1,bit23~bit25为1,其它位为不变
bit3~bit7:以bit0为基础构造结果0x1f
bit23~bit25:以bit0为基础构造结果0x07
开始移位相或:(0x1f<<3)|(0x07<<23)
a |=(0x1f<<3)|(0x07<<23)
二、结合位取反获取特定位为0的二进制数
例2.对于一个整形数a,使其bit4~bit10为0,其余位为不变
思路:
a.先构造该数的反码
bit4~bit10为0的数,其反码为bit4~bit10为1,其余bit位为0,即:0x7f<<4
b.对其取反
对其构造的反码进行取反:~(0x7f<<4)
最后得出结果:a &=(~(0x7f<<4))