美文网首页
Swift-整数的奇数位与偶数位

Swift-整数的奇数位与偶数位

作者: FlyElephant | 来源:发表于2017-05-22 07:15 被阅读168次

    题目:编写程序交换某个整数的奇数位和偶数位,使用指令越少越好(即位0与位1交换,位2与位3交换)。看过题目解析之后才发觉,这题要交换的是整数二进制的奇数和偶数位.
    解决思路:
    1.操作奇数位,把101010(即0xAA)作为掩码,提取奇数位,并右移1位到偶数位置.
    2.操作偶数位,把010101(即0x5555)作为掩码,提取偶数位,并左移一位到奇数位置.
    核心代码:
    <pre><code>func swapOddEvenBits(num:Int) -> Int { return (((num & 0xaaaaaaaa) >> 1 ) | ( ( num & 0x55555555 ) << 1)) }</code></pre>

    测试代码:
    <pre><code>var bitNumber:Int = bitManager.swapOddEvenBits(num: 10) print("FlyElephant交换之后的数据---\(bitNumber)")</code></pre>

    FlyElephant.png

    相关文章

      网友评论

          本文标题:Swift-整数的奇数位与偶数位

          本文链接:https://www.haomeiwen.com/subject/rvyvxxtx.html