如何将一串十六进制串分为2组,并使用JavaScript转换为二进制



最近我发现了将十六进制转换为二进制的代码,但是现在问题是字符串输入必须以遵循格式" ff ff ff ff ff ff"而不是" ffffffff"

我正在尝试创建一种将" FFFFFFFF"分开的方法,同时将其转换为二进制。

function hex2bin(hex){
    return ("00000000" + (parseInt(hex, 16)).toString(2)).substr(-8);
}
var a = "ffffffff".match(/.{1,2}/g);
alert(a);

var result = ""
"ff ff ff ff".split(" ").forEach(str => {
    result += hex2bin(str)
})

.match()正在返回["ff", "ff", "ff", "ff"]的数组,因此您可以将其直接传递到forEach()中。

另一个优化是使用reduce(),如这样:

function hex2bin(hex) {
  return ("00000000" + (parseInt(hex, 16)).toString(2)).substr(-8);
}
var bin = "ffffffff".match(/.{1,2}/g).reduce((result, hex) => result += hex2bin(hex), "");
console.log(bin);

match()功能正在执行您需要的事情,您只需要使用它返回的数组:

function hex2bin(hex) {
  return ("00000000" + (parseInt(hex, 16)).toString(2)).substr(-8);
}
var result = "ffffffff".match(/.{1,2}/g).map(str => {
  return hex2bin(str)
}).join('');
console.log(result);

最新更新