程序员面试金典——奇偶位交换__(位运算)
来源:互联网 发布:数据服务 编辑:程序博客网 时间:2024/06/05 18:23
题目描述
请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
给定一个int x,请返回交换后的数int。
测试样例:
10
返回:5
思路:
//提取一个数的奇数位:x&0x55555555;奇数位全置1,偶数位全置0
//提取一个数的偶数位:x&0xAAAAAAAA;奇数位全置0,偶数位全置1
//互换位置:提取奇偶位后移动一下,奇数应该左移,偶数应该右移
代码 0xaaaa 是16进制表示法,转换为10进制是43690这么大的一个数。转换为2进制是1010 1010 1010 10101010 1010 1010 1010
0x55555555是16进制,2进制是0101 0101 0101 0101 0101 0101 0101 0101
import java.util.*;public class Exchange { public int exchangeOddEven(int x) { // write code here return ((x&0x55555555)<<1)|((x&0xaaaaaaaa)>>1); }}
阅读全文
0 0
- 程序员面试金典——奇偶位交换__(位运算)
- 程序员面试金典——整数转化__(位运算)
- 程序员面试金典——找出缺失的整数__(位运算)
- 程序员面试金典:奇偶位交换、判断直线相交
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 剑指offer——另类加法__(位运算)
- 程序员面试金典——二进制小数_(位运算)
- 交换二进制奇偶位(算法)
- 位运算判断奇偶
- 判断奇偶 位运算
- 位运算判断奇偶
- 浅谈程序数据在执行时的变化
- Android布局动画
- echarts
- 刷清橙OJ--A1038.超级重复串
- 润乾报表单独部署url安全之加解密函数
- 程序员面试金典——奇偶位交换__(位运算)
- BZOJ 4653: [Noi2016]区间 线段树
- 翻转单词顺序
- 初识多线程 (其二)
- 类加载器
- 二阶构造
- MySQL和Oracle
- 1020. 月饼 (25)
- 单例模式+Java