2017-09-28 2 views
0

최근에 16 진수를 2 진수로 변환하지만이 문제는 이제 문자열 입력이 "ff ff ff ff "대신"ffffffff "어떻게 16 진수 문자열을 2의 그룹으로 나누고 javascript를 사용하여 이진수로 변환합니까

"ffffffff "를"ff ff ff ff "와 분리하여 동시에 이진으로 변환하는 방법을 만들려고합니다. match() 기능을 사용하면 무엇을 필요로하고있다

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) 
}) 
+0

이 솔루션 중 하나가 문제를 해결하는 데 도움이 되었습니까? –

답변

0

, 당신은 그냥 반환 배열 작업을해야합니다

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

0

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

관련 문제