From: Joe Van Dyk Date: 2004-11-20T06:33:11+09:00 Subject: Re: Extracting ints from a unsigned long Joel VanderWerf wrote: > 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] Ah.... I didn't know that I needed to have the "C*" part. Thanks.