c语言中的小技巧(位运算)

    技术2022-05-20  59

    1,关于 2的次方的数 求余 都可以用 & 替换。

    eg:                15 % 2 =  1       15  % 4=3    15 %  8=7  

              15  &  1 =  1       15 & 3=3    15 & 7 =7 

       由上可以得出:  2的n次方,就用被余数和 n个1(2进制)相与即可

    2,关于 数和一个2的次方的除法,乘法,可用位移替换。

                    15 x 2 =   (15<1)  

          15 x 2的n次方 = (15>n) 

          15 / 2 =  (15>1)

          15/2的n 次方 = (15>n)

    注意,唯一的位数不可超过该数的位数  比如32位系统下的int型变量,位移当然不能超过32


    最新回复(0)