最近我发现了将十六进制转换为二进制的代码,但是现在问题是字符串输入必须以遵循格式" 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);