190. Reverse Bits

来源:互联网 发布:东方无限螺旋 知乎 编辑:程序博客网 时间:2024/05/16 01:22

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).

思路:不要想着先将整型转化成二进制数,翻转,在转化成整数这条不归路

主要思路是将二进制穿从右开始一个一个取出来,加到000...000中;那么怎么取出数呢?

千万不要整数转化二进制数,&运算就可以做到,n&1就是整数n的二进制数最右边1位,当其为1时返回1,当期为0时返回0 ;按照个位取出数了,接下来呢?

接下来就是利用<<左移方法

public int reverseBits(int n) { if(n==0) return 0;int res=0;for(int i=0;i<32;i++){if((n&1)==1){//右边位为1res=(res<<1)+1;}else{//右边位为0res=res<<1;}n=n>>1;//取出最右边的位后,n整体右移1位}return res;}


0 0
原创粉丝点击