javascript - 如何在 JavaScript 中将整数转换为二进制?

标签 javascript numbers

我希望看到整数,无论​​是正整数还是负整数。

很像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/

相关文章:

javascript - 如何在 HTML5 播放器中停止下载视频

javascript - 为什么这段 JavaScript 代码中的数组没有发生变化?

javascript - 如何从总数中启动复选框组值

java - 为什么Java的数字类不相互扩展?

javascript - 错误 : Type '{}' is missing the following properties from type

同一类中的 JavaScript 调用方法未定义?

javascript - NodeJS Express Passport-facebook 无法加载页面回调

java - 有没有办法在java中用一些初始化的数字创建一个数组,然后向它添加随机数

javascript - 如何在javascript中使用数字输入?

generics - 尽管提供了 `impl Trait`参数,但仍提供了明确的类型规范