內(nèi)容
給定一個正整數(shù)翩隧,輸出它的補數(shù)补憾。補數(shù)是對該數(shù)的二進制表示取反报亩。
注意:
給定的整數(shù)保證在32位帶符號整數(shù)的范圍內(nèi)。
你可以假定二進制數(shù)不包含前導零位岂却。
示例 1:
輸入: 5
輸出: 2
解釋: 5的二進制表示為101(沒有前導零位)忿薇,其補數(shù)為010。所以你需要輸出2躏哩。
示例 2:
輸入: 1
輸出: 0
解釋: 1的二進制表示為1(沒有前導零位)署浩,其補數(shù)為0。所以你需要輸出0扫尺。
思路
代碼
/**
* @param {number} num
* @return {number}
*/
var findComplement = function (num) {
num = num.toString(2);
num = num.split('');
for (var i = 0; i < num.length; i++) {
num[i] = Math.abs(Number(num[i]) - 1); // 這里表示取反
}
num=num.join('');
return parseInt(num, 2);
};