2011-03-09 5 views
2

16 진수 문자열을 루비의 2 진수 문자열로 변환하는 가장 짧은 방법은 무엇입니까? 예를 들면 :루비에서 가장 짧은 hex2bin?

class 
    def hex2bin 

    end 
end 

"AB12345678".hex2bin 

답변

2
def hex2bin 
    [self].pack "H*" 
end 

그냥 팩() 함수, 나는이 또한 작동 생각을 발견!

3
class String 
    def hex2bin 
    scan(/../).map { |x| x.to_i(16).chr }.join 
    end 
end 

"AB12345678".hex2bin #=> "\xAB\x124Vx" 
+0

좋은 소식입니다! – c2h2

+2

당신은 또한'chars.each_slice (2) .map {| x | x.join.to_i (16) .chr} .join' 이것은 좀 더 길지만 char 쌍을 추출하기 위해 정규 표현식을 사용하지 않기 때문에 더 효율적입니다. – Theo

관련 문제