每日一題 顛倒二進位制位

2021-10-24 21:34:17 字數 663 閱讀 3957

題目描述

顛倒給定的 32 位無符號整數的二進位制位。

示例

輸入: 00000010100101000001111010011100

輸出: 00111001011110000010100101000000

解釋: 輸入的二進位制串 00000010100101000001111010011100 表示無符號整數 43261596,

因此返回 964176192,其二進位制表示形式為 00111001011110000010100101000000。

思路

用 n&1 取當前n的最後一位,從31開始,將最後一位移動到對應位置;二進位制反轉時,如果剩餘位數全位 0,則可以不用再反轉。

下面記住幾個常用的符號運算子,分別是:

1.>> 表示右移運算,在左邊補上符號位;2. << 丟棄高位以及符號位,低位用0補齊;3.>>> 無符號右移,高位用0補齊。因為32位是確定的,所以時間複雜度和空間複雜度為o(1)。

**

public

class

solution

return ans;

}}

Leetcode每日一題 190 顛倒二進位制位

顛倒給定的 32 位無符號整數的二進位制位。請注意,在某些語言 如 j a 中,沒有無符號整數型別。在這種情況下,輸入和輸出都將被指定為有符號整數型別,並且不應影響您的實現,因為無論整數是有符號的還是無符號的,其內部的二進位制表示形式都是相同的。在 j a 中,編譯器使用二進位制補碼記法來表示有符號...

位運算 顛倒二進位制位

a代表某字串 a b 異或 相同為0,不同為1 若b是一串0,則a b a,a b 0 a a 0 若b是一串1,則a b a,相當於把a取反,a b a a a a 利用x x 0,可以將三個數中重複的兩個數去掉 n 相當於無符號右移,左邊會補上0 獲取11111111,只需要把0取反 得到倒數第...

leetcode 顛倒二進位制位

顛倒給定的 32 位無符號整數的二進位制位。示例 輸入 43261596 輸出 964176192 解釋 43261596 的二進位制表示形式為 00000010100101000001111010011100 返回 964176192,其二進位制表示形式為 00111001011110000010...