From: Joel VanderWerf Date: 2004-11-19T08:05:21+09:00 Subject: Re: Extracting ints from a unsigned long Joe Van Dyk wrote: > I have a bunch of binary data consisting of 4 ints stored inside an unsigned > long. > > Here's psuedo C code to extract out the ints: > > // data is a FILE pointer to the file > unsigned long temp; > fread(temp, sizeof(temp), 1, data); > int first = temp >> 24; > int second = temp << 8 >> 24; > int third = temp << 16 >> 24; > int fourth = temp << 24 >> 24; > > > I'm trying to do the same thing in Ruby, but I'm having difficulties with > the bitshifting. Any ideas? Would it make since to inline C code in Ruby > for this? irb(main):003:0> [1,2,3,4].pack "C*" => "\001\002\003\004" irb(main):004:0> [1,2,3,4].pack("C*").unpack("C*") => [1, 2, 3, 4]