我希望看到整数,无论是正整数还是负整数。
很像this question ,但对于 JavaScript。
最佳答案
function dec2bin(dec) {
return (dec >>> 0).toString(2);
}
console.log(dec2bin(1)); // 1
console.log(dec2bin(-1)); // 11111111111111111111111111111111
console.log(dec2bin(256)); // 100000000
console.log(dec2bin(-256)); // 11111111111111111111111100000000
您可以使用 Number.toString(2)
函数,但它在表示负数时有一些问题。例如,(-1).toString(2)
输出为 "-1"
。
要解决此问题,您可以使用无符号右移按位运算符 ( >>>
) 将您的数字强制转换为无符号整数。
如果你运行 (-1 >>> 0).toString(2)
你会将你的数字 0 位向右移动,这不会改变数字本身但它会被表示作为无符号整数。上面的代码将正确输出 "1111111111111111111111111111111"
。
This question有进一步的解释。
-3 >>> 0
(right logical shift) coerces its arguments to unsigned integers, which is why you get the 32-bit two's complement representation of -3.
关于javascript - 如何在 JavaScript 中将整数转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069462/