-
实现将某个数据的连续某些位清0,其他位保持不变,公式如下:
A &= ~(B << C);
A:就是要操作修改的变量
B:连续的位数对应的值位数 B的值(16进制形式) B的值(2进制形式) 1位 1 1 2位 3 11 3位 7 111 4位 0xF 1111 5位 0x1F 11111 6位 0x3F 111111 7位 0x7F 1111111 8位 0xFF 11111111
C:要修改的连续位的起始位编号(从右往左【0,1,2,3,4,5…】})
-
实现将某个数据的连续某些位置1,其他位保持不变,公式如下:
A |= (B << C);
A:就是要操作修改的变量
B:连续的位数对应的值
C:要修改的连续位的起始位编号(从右往左【0,1,2,3,4,5…】})
建议:如果操作的位数大于等于2位,统一先清0后置1