给一个int型整数,如何将这个整数的奇偶位互换

发布时间:2016-12-7 16:43:08 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"给一个int型整数,如何将这个整数的奇偶位互换",主要涉及到给一个int型整数,如何将这个整数的奇偶位互换方面的内容,对于给一个int型整数,如何将这个整数的奇偶位互换感兴趣的同学可以参考一下。

题目: 假设一个8为整数是(10101100)b那么奇偶互换之后就是(01011100)b。假设机器是32位的 注意: 8位中最低位开始数,最低位是第0位,是偶数为,次低位时第1位,是偶数位。 做法: ((a>>1)&0x5555555) | ((a<<1)&0xaaaaaaaa) 解释 a>>1,所有的bit都右移一位,相当于奇数位的bit到了偶数位,然后和0x5555555做与操作,相当于只留下了偶数位,也就是原来的奇数位。 例如 11111010 >>1  => 01111101  & 0x55 => 01010101 a<<1,所有的bit都左移一位,相当于偶数位的bit到了寄数位,然后和0xaaaaaaaa做与操作,相当于只留下了奇数位,也就是原来的偶数位。 例如 11111010 <<1  => 11110100  & 0xaa => 10100000 最后将上面的结果做与操作,就是把移位好的奇偶两部分合在一起。 01010101 | 10100000 =》 11110101 这就是最终结果

上一篇:Android UI自动化测试的最佳实践
下一篇:smart360.net的api使用 - python

相关文章

相关评论