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) - 1)

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

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


注:不喜勿喷!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,211评论 1 19
  • 窗口的风铃被谁摇醒 启程的时刻到了 少年最爱敞开胸怀 任凭它撩乱发梢 风来了 蒲公英肆意起舞 百合花清香扑鼻 风来...
    马流云阅读 350评论 1 4
  • 明天最近开始用手账本坚持写摄影日记——关于工作的总结和反思,开始坚持按照时间安排表度过每一天,在简书上的文章越写越...
    小伊__er阅读 275评论 5 2
  • 一、Touch ID 2013年随iPhone 5s面世,Apple开启了,Touch ID解锁在移动终端上的使用...
    CarsonChen阅读 1,364评论 4 0