C/C++知识点积累

来源:互联网 发布:网络写作怎么赚钱 编辑:程序博客网 时间:2024/06/10 18:30

1. n % 2^m == n&(2^m - 1) ,举例:n%2  = = n&1 ,n%4 == n&3, n%8 ==  n&7 ......成立的条件:n必须是无符号的整数, 对于负数是无效的

  举个例子:22%8    22的二进制10110,8的二进制1000,7的二进制0111,取余相当于用22去减8,一直减到差小于8,由2^n的特殊性(只有最高位是1,后面的n位全部是0),所以最后剩下的就是二进制的后三位:110。而22&7,由2^n-1的特殊性,它相当于取22的后n位,即取后三位:110,所以相等。

  


0 0
原创粉丝点击