Seasons.NET

ちょっとした技術ブログです

Arrayを数値に変換

すんません・・・
よく調べずに作ってみました・・・。

 1 class Array 
 2   def to_v
 3     begin
 4       raise "Array is Empty!!\n" if self.empty?
 5       sh = 0
 6       value = 0
 7       self.each{ |v| value = value | (v << sh); sh = sh + 8 }
 8       return value
 9     rescue
10       STDERR.print $!
11     end
12   end
13 end
14 
15 if $0 == __FILE__
16   open( "a.bin" , "rb" ) do |f|
17     f.binmode
18     data = f.read( 4 )
19     ret = data.unpack("C*")
20     ret = [0,0xFA,0x01,0xFF]
21     ret = [0,0xFF]
22     printf "%x" , ret.to_v
23   end
24 end