Leetcode--190. 颠倒二进制位
顛倒給定的 32 位無符號整數的二進制位。
?
示例 1:
輸入: 00000010100101000001111010011100
輸出: 00111001011110000010100101000000
解釋: 輸入的二進制串 00000010100101000001111010011100 表示無符號整數 43261596,
? ? ? 因此返回 964176192,其二進制表示形式為 00111001011110000010100101000000。
示例 2:
輸入:11111111111111111111111111111101
輸出:10111111111111111111111111111111
解釋:輸入的二進制串 11111111111111111111111111111101 表示無符號整數 4294967293,
?? ? ?因此返回 3221225471 其二進制表示形式為 10101111110010110010011101101001。
思路:將二進制數字依次左移,每次將末尾數字累加,并將累加結果右移一位
提交的代碼:
public class Solution {
? ? // you need treat n as an unsigned value
? ? public int reverseBits(int n) {
? ? ? ? int i,x=0;
? ? ? ? for(i=1;i<=32;i++)
? ? ? ? {
? ? ? ? ? ? ?
? ? ? ? ? ? x=(x<<1);
? ? ? ? ? ? x+=(n&1);
? ? ? ? ? ? n=n>>>1;
? ? ? ? }
? ? ? ? return x;
? ? }
}
總結
以上是生活随笔為你收集整理的Leetcode--190. 颠倒二进制位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--162. 寻找峰值
- 下一篇: 【剑指offer】面试题35:复杂链表的