LeetCode-190-顛倒二進(jìn)制位

題目描述:顛倒給定的 32 位無符號整數(shù)的二進(jìn)制位。
提示:
請注意,在某些語言(如 Java)中,沒有無符號整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號整數(shù)類型,并且不應(yīng)影響您的實現(xiàn),因為無論整數(shù)是有符號的還是無符號的,其內(nèi)部的二進(jìn)制表示形式都是相同的。
在 Java 中,編譯器使用二進(jìn)制補(bǔ)碼記法來表示有符號整數(shù)。因此,在上面的 示例 2 中,輸入表示有符號整數(shù) -3,輸出表示有符號整數(shù) -1073741825。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:
??著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:二進(jìn)制運算
將 n 視作一個長為 32 的二進(jìn)制串,從低位往高位枚舉 n 的每一位,將其倒序添加到翻轉(zhuǎn)結(jié)果 result 中。代碼實現(xiàn)中,每枚舉一位就將 n 右移一位,這樣當(dāng)前 n 的最低位就是我們要枚舉的比特位。當(dāng) n 為 0 時即可結(jié)束循環(huán)。需要注意的是,在某些語言(如 Java)中,沒有無符號整數(shù)類型,因此對 n 的右移操作應(yīng)使用邏輯右移。
說明:參考網(wǎng)上題解,原本的解法很笨。
【每日寄語】 生命有裂縫,陽光才能照得進(jìn)來。路上有坎坷,人才變得堅強(qiáng)起來。
標(biāo)簽: