2011-03-09 56 views
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 2011-03-09 10:48:34

+2

你也可以做'chars.each_slice(2).map {| x | x.join.to_i(16).chr} .join「,它有點長,但可能更高效,因爲它不使用正則表達式來提取字符對。 – Theo 2011-03-10 06:07:50