LeetCode 190 Reverse Bits
2015-12-04 20:29
148 查看
题目描述
Reverse bits of a given 32 bits unsigned integer.For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
Follow up:
If this function is called many times, how would you optimize it?
Related problem: Reverse Integer
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
分析
JDK :int reverse(int i)
[code] /** * Returns the value obtained by reversing the order of the bits in the * two's complement binary representation of the specified {@code int} * value. * * @param i the value to be reversed * @return the value obtained by reversing order of the bits in the * specified {@code int} value. * @since 1.5 */ public static int reverse(int i) { // HD, Figure 7-1 i = (i & 0x55555555) << 1 | (i >>> 1) & 0x55555555; i = (i & 0x33333333) << 2 | (i >>> 2) & 0x33333333; i = (i & 0x0f0f0f0f) << 4 | (i >>> 4) & 0x0f0f0f0f; i = (i << 24) | ((i & 0xff00) << 8) | ((i >>> 8) & 0xff00) | (i >>> 24); return i; }
思路
把第i位取出,放到结果的第31-i位上。代码
[code] public static int reverseBits(int n) { int rt = 0; for (int i = 0; i < 32; i++) { rt |= ((n >> i) & 1) << (31 - i); } return rt; }
相关文章推荐
- 联想V480”虚拟机被配置为64位客户机操作系统,但是64位操作不可用,已为该虚拟机禁用长模式“的解决办法
- 嵌入式tips
- 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- python基础教程共60课-第1课安装
- 37.拖放控件Interface Builder
- Day(一)
- Android CheckBox和RadioButton
- openjudge 木材加工
- 【学习笔记】maven下多个web项目使用maven-war-plugin需要注意的问题
- Framework快速部署工具
- simhash算法原理
- Myeclipse中Java的代码全是黑色的了,但jsp代码就有不同颜色显示?
- 关于复选框多重值传到后台的问题
- HDU1429 bfs 状态压缩 xingxing在努力
- java字符串常量池
- hdu 2066floyd算法之一个人的旅行
- 对于三方库之-StreamingKit的简单应用实例
- project euler 3
- 最大流dinic模板
- C++创建和使用DLL