繁体   English   中英

我如何将十六进制字符串分成2组并使用javascript转换为二进制

[英]How do i split a string of hexadecimal into groups of 2 and convert to binary using javascript

最近,我发现此代码将十六进制转换为二进制,但是现在的问题是字符串输入必须采用“ ff ff ff ff”格式,而不是“ ffffffff”

我正在尝试创建一种方法,将“ ffffffff”分离为“ ff ff ff ff”,同时将其转换为二进制。

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()函数可以满足您的要求,您只需要使用它返回的数组即可:

 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); 

.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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM