Surely they must be 4 shorts ( 16bits ) to be stored inside one long ( 64bits )? On Fri, 19 Nov 2004 07:53:19 +0900, Joe Van Dyk <joe.vandyk / boeing.com> 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? > > Joe > >