190.Reverse Bits---位運算

題目連接:https://leetcode.com/problems/reverse-bits/description/eclipse

題目大意:將數值的二進制反轉。ide

法一(借鑑):因爲是無符號32位整型,當二進制反轉後會獲得一個32位的整型,eclipse中已經沒法正常顯示了,可是轉爲二進制仍是正確的。至於爲何我也不知道。代碼以下(耗時2ms):spa

 1     public int reverseBits(int n) {
 2         int res = 0;
 3         for(int i = 0; i <= 31; i++) {
 4             //1010->tmp=0,n=101,res=00,
 5             int tmp = n & 1;//取最後一位
 6             n = n >> 1;//右移
 7             res = res<<1;//結果左移一位
 8             res = res | tmp;//將最後一位加到結果左移的那個位上去,也就是最低位上
 9         }
10     //    System.out.println(Integer.toBinaryString(res));
11         //在eclipse裏會顯示錯誤,由於res已經移位造成了32位的數,已經沒法正常顯示了
12         //可是當轉爲二進制的時候是正常的
13         return res;
14     }
View Code

其餘的解法:http://blog.csdn.net/feliciafay/article/details/44536827.net

相關文章
相關標籤/搜索