【问题标题】:Showing 32 bit version of a number显示数字的 32 位版本
【发布时间】:2021-02-17 13:18:29
【问题描述】:

据我了解,JavaScript 总是将二进制数字转换为 32 位,对吗? 例子

function dec2bin(a) {
  var b=[]
    b = a.toString(2)

  
return b
}

如果我打电话给dec2bin(10) 我会得到 1010 但应该是

00000000000000000000000000001010

我猜它只显示商品的相关位。但是如果我总是想要前 16 位或 8 位呢?

【问题讨论】:

  • 不,所有 javascript 数字都是 64 位浮点数。
  • "据我了解,JavaScript 总是将二进制数字转换为 32 位,对吗?" 不,JS 中的数字类型是 64 位 IEEE 754 浮点数。使用按位运算符将强制将数字转换为 32 位整数以进行操作,但这基本上是唯一的例外。唯一的另一件事是 BigInt,它绝对不是 32 位的。
  • 顺便说一句,var b=[] 相当没用,因为 1. 你会立即覆盖它 2. 你甚至没有对数组做任何事情。

标签: javascript binary bit


【解决方案1】:

使用 padStart 方法制作一个 n 位字符串。我刚刚修改了您的函数,添加了额外的参数 noOfBits 以使其动态化,并在将其转换为二进制后调用 padStart 方法。 padStart 方法用另一个字符串填充当前字符串,直到结果字符串达到给定长度。

function dec2bin(a, noOfBits) {
  return a.toString(2).padStart(noOfBits, '0');
}

console.log(dec2bin(10, 32));
console.log(dec2bin(10, 16));
console.log(dec2bin(10, 8));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多