給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。
注意:
給定的整數保證在32位帶符號整數的範圍內。
你可以假定二進位制數不包含前導零位。
示例 1:
輸入:5輸出:2解釋:5的二進位制表示為101(沒有前導零位),其補數為010。所以你需要輸出2。示例 2:
輸入:1輸出:0解釋:1的二進位制表示為1(沒有前導零位),其補數為0。所以你需要輸出0。思路:利用求餘和除數將 num 轉換成二進位制的數,將其儲存在 char 型別的字元陣列中,然後遍歷陣列,將 0 換 1,1 換 0,最後用 integer 的方法 parseint() 輸出結果。
**:
class solution
char a = s.tochararray();
for(int i = 0;i < a.length;i++)else
}string b = new string(a);
return integer.parseint(b,2);
}}
大神思路:首先用 integer 的 highestonebit() 方法獲取二進位制的 1 的最高位,例如 5 的最高位是 4 ,然後將其左移一位後 減 1 ,利用和 num 二進位制位數一樣的全 1 和 num 的二進位制位數進行異或。
**:
class solution
}
LeetCode 476 數字的補數
給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...
Leetcode 476 數字的補數
給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...
LeetCode 476 數字的補數
給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...