LeetCode1009 十進位制整數的反碼

2021-09-24 04:59:49 字數 1168 閱讀 7634

每個非負整數n都有其二進位制表示。例如,5可以被表示為二進位制"101"11可以用二進位制"1011"表示,依此類推。注意,除n = 0外,任何二進位制表示中都不含前導零。

二進位制的反碼表示是將每個1改為0且每個0變為1。例如,二進位制數"101"的二進位制反碼為"010"

給定十進位制數n,返回其二進位制表示的反碼所對應的十進位制整數。

示例 1:

輸入:5輸出:2解釋:5 的二進位制表示為 "101",其二進位制反碼為 "010",也就是十進位制中的 2 。
示例 2:

輸入:7輸出:0解釋:7 的二進位制表示為 "111",其二進位制反碼為 "000",也就是十進位制中的 0 。
示例 3:

輸入:10輸出:5解釋:10 的二進位制表示為 "1010",其二進位制反碼為 "0101",也就是十進位制中的 5 。

0 <= n < 10^9

解析:

反碼就是每個二進位制位上的數字正好相反。因此需要按位計算,每一位都取相反的數字,然後相加。

**:

int bitwisecomplement(int n) 

return ans;

}

此題還有規律,就是結果值和n相加等於2^n-1,只要正確的找到n,就能得出結果。

**:

int bitwisecomplement(int n) 

}return -1;

}

Leetcode1009 十進位制整數的反碼

每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 010 給定...

1009 十進位制整數的反碼

每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 010 給定...

1009 十進位制整數的反碼

題目描述 每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 0...