算法提炼-位运算(3)

简介: 算法提炼-位运算(3)

交换一个整数的二进制表达的奇偶位

思路:可以通过将这个整数的二进制转化为字符串类型,然后分割形成数组,利用循环将奇偶位进行交换,

这里利用位运算来进行交换

  public static  int swap(int a ){
         int ji = a&0x55555555;  //和10101010...相与 取出奇数位 然后向后移动一位编程偶数位
         int ou = a&0xaaaaaaaa; //和01010101...相与,取出偶数位,然后向左移动一位称为奇数位
         return (ji<<1)^(ou>>1); //他们两个做异运算即可获得奇偶位交换后的数
    }


相关文章
|
2月前
|
算法
算法思想总结:位运算
算法思想总结:位运算
|
5月前
|
机器学习/深度学习 存储 算法
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
|
7月前
|
算法
基础算法:位运算
基础算法:位运算
23 0
|
5天前
|
存储 算法 C++
算法:位运算
算法:位运算
15 2
|
3月前
|
算法 测试技术 C++
【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字
【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字
|
4月前
|
算法 网络协议 Java
【算法系列篇】位运算-2
【算法系列篇】位运算-2
|
4月前
|
算法 网络协议 Java
【算法系列篇】位运算-1
【算法系列篇】位运算-1
|
4月前
|
算法 测试技术 C#
【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字
【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字
|
9月前
|
算法
基础算法(贪心 合并 位运算)
基础算法(贪心 合并 位运算)
47 0
|
10月前
|
算法 Java API
【算法】位运算常用算法以及知识点
【算法】位运算常用算法以及知识点
60 0