位操作2.0 3.0

1、自己写代码用位操作(主要是移位和位取反)来构建这个特定的二进制数来实现寄存器的特定位置给特定值。

2、使用移位来获取特定位为1的二进制数。用移位法来获取一个特定位为1的二进制数。例如(0x1f<<3)。(0x1f<<3) | (0x7<<23)。

3、使用移位结合取反获取特定位为0的二进制数。

4、在C语言题目中,设置为1,清除为0。

5、给定一个整型数a,设置a的bit3,保证其他位不变;a = a | (1<<3)

6、给定一个整型数a,清除a的bit15,保证其他位不变;a =~( a & (1<<15))

7、给定一个整型数a,取出a的bit3~bit8:先将bit3~bit8保持不变,其余位清零(位与),再将其右移3位得到结果。

8、用C语言给一个寄存器的bit7~bit17赋值937(其余位不受影响)(第一不能影响其他位,第二不知道bit7~bit17的值):先将bit7~bit17清零,然后赋值937到bit7~bit17. 

a &= ~(0x7ff<<7); a |= (937<<7);

posted @ 2020-10-27 22:07  Warmth112  阅读(107)  评论(0)    收藏  举报