iOS 一些常用的位运算

功能                                            示例                                                          位运算

去掉最后一位                             (101101->10110)                                        x >> 1

把最后一位变成1                       (101100->101101)                                       a | 1

把最后一位变成0                      (101101->101100)a| 1-1                              a| 1-1

最后一位取反                            (101101->101100)a^ 1                                  a^ 1

把右数第n位变成1                    (101001->101011,n=2)a| (1 < < (n-1))      a| (1 < < (n-1))

把右数第n位变成0                    (101101->100101,n=4)a& ~ (1 < < (n-1))    a& ~ (1 < < (n-1))

右数第k位取反                          (101001->100001,n=4)a^ (1 < < (n-1))    a^ (1 < < (n-1))

取末三位                                    (1101101->101)a& 7                                    a& 7

取末n位                                      (1101101->1101,n=5)              a& ((1 <

取右数第n位                              (1101101->1,n=4)                    a>> (n-1) & 1

把末n位变成1                          (101001->101111,n=4)                a|(1 <

末n位取反                                 (101001->100110,n=4)             a^ (1 << n-1)

把右起第一个0变成1                (100101111->100111111)              a| (a+1)

把右边连续的0变成1               (11011000->11011111)                       a| (a-1)

判断奇数                                (a&1)==1

判断偶数                                   (a&1)==0


注:不喜勿喷!!!

你可能感兴趣的:(iOS 一些常用的位运算)