位操作複習題之反轉二進位制位

2021-09-23 18:52:20 字數 987 閱讀 3288

題目:

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

示例 1:

輸入:00000010100101000001111010011100輸出:00111001011110000010100101000000解釋:輸入的二進位制串00000010100101000001111010011100表示無符號整數43261596因此返回 964176192,其二進位制表示形式為00111001011110000010100101000000
示例 2:

輸入:11111111111111111111111111111101輸出:10111111111111111111111111111111解釋:輸入的二進位制串11111111111111111111111111111101表示無符號整數 4294967293,

因此返回 3221225471 其二進位制表示形式為10101111110010110010011101101001。

解題思路:

首先就是獲取32位每一位的數字,這個可以通過右移操作來完成。將想要獲取的該目標位置的陣列右移 i 位,此時左邊補的數字為0,完成右移後再與1按位與,獲取正確的數字,接著就是再將其左移31 - i 位,將每一次的值加起來即可。

**實現:

public class solution 

return res;

}}

二進位制位交換 反轉 計數

如何交換乙個整形數的二進位制表示的其中兩位.比如要把a,與b進行交換。那麼方法如下 x表示任意值。x x x xaxx x xxbx x x 分為兩步 第一步 首先要求得 x x x x0xx x xx0x x x 第二步 在第一步的基礎上加上 0000 0000 0000 0b00 0000 00...

位運算 顛倒二進位制位

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取反 得到倒數第...

二進位制位運算

與運算,6 3 2 或運算 6 3 7 異或運算 6 3 5 反碼 6 7 左移 3 2 12 3 2 2 12 右移 3 1 1 3 2 1 無符號右移 3 1 1 3 2 1 按位與,當兩位同時為1時才為1如 1 1 1 1 0 0 0 1 0 6 3相當於 0110 0011 0010 2 按...