Javascript 将字符串转换为固定长度的二进制

问题描述 投票:0回答:2

有没有一种优雅的方法将某些字符串转换为二进制并获得固定长度的结果?
内置功能是:

parseInt(str, 10).toString(2)
,但是是剪长度的。

例如,如果我想要长度= 8 位,那么

myFunction("25")
将返回
00011001
而不是仅仅
11001

我知道我可以在开头附加零,但对我来说这似乎不是一种优雅的方式。

javascript binary append converters
2个回答
1
投票

似乎最优雅的方法是编写(或到达某处)缺少的抽象并组合它们以实现所需的结果。

// lodash has this function
function padStart(string, length, char) {
  //  can be done via loop too:
  //    while (length-- > 0) {
  //      string = char + string;
  //    }
  //  return string;
  return length > 0 ?
    padStart(char + string, --length, char) :
    string;
}

function numToString(num, radix, length = num.length) {
  const numString = num.toString(radix);
  return numString.length === length ?
    numString :
    padStart(numString, length - numString.length, "0")
}

console.log(numToString(parseInt("25", 10), 2, 8));


0
投票

在现代 JavaScript 中:

const number = 25;

number.toString(2).padStart(8, '0');  // '00011001'
© www.soinside.com 2019 - 2024. All rights reserved.