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

时间:2014-10-20 15:14:12

标签: javascript binary append converter

是否有 优雅 方式将某些字符串转换为二进制并获得固定长度的结果?
内置函数是:parseInt(str, 10).toString(2),但它缩短了长度。

例如,如果我想要长度= 8位,那么myFunction("25")将返回00011001而不是11001

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

1 个答案:

答案 0 :(得分: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));