Ale*_*lls 3 javascript binary bit-manipulation bitwise-operators node.js
我刚刚有一个面试问题,我需要得到一个整数的二进制表示,这是我应该知道怎么做的……例如,5 用二进制表示为 101,步骤如下所示:
// 5 % 2 = 1
// 5 / 2 = 2
// result = 1;
// 2 % 2 = 0
// 2 / 2 = 1
// result = 10
// 1 % 2 = 1
// 1 / 2 = 0
// result = 101
Run Code Online (Sandbox Code Playgroud)
停止条件是什么时候 ~~(1/2) === 0
所以我有这个:
const getBinary = (v) => {
let remainder, binary = 1;
while (true) {
remainder = v % 2;
v = ~~(v / 2);
if (v === 0) {
return binary;
}
if (remainder === 0) {
binary = binary * 10 + 1;
}
else {
binary = binary * 10;
}
}
};
console.log(getBinary(5));
Run Code Online (Sandbox Code Playgroud)
这样就可以了,但是binary变量被初始化为 1。有没有办法改进它,使其适用于负数,或者是否将 0 作为参数传递给函数?
小智 6
var integer = 52;
console.log(integer.toString(2));
Run Code Online (Sandbox Code Playgroud)
javascript原生的简单函数,不需要冗长的代码。