1. len & ~3 :计算整数len中4的最大倍数,去掉余数(即等价于:len - len%4)
for(int i=0; i< len & ~3; i++){ //i < (len-len%4)
}
&:这里是 “逻辑与”操作;
~: “取反”,按位取反操作;
详细描述:(1) 数字 3 的二进制表示为(都用八位表示):00000011,则 ~3: 11111100 ;
(2) 假设len=15的二进制为( 00001111) ;
(3) len的二进制数与~3的二进制进行逻辑与操作 : 00001111 & 11111100 = 00001100(即:12; 也即是:i<12 )
可以看出:得数12正是:15之间最大的4的倍数。15 - 15%4 = 12
实现思想:掩盖len底部最后两位&