From: Dossy Date: 2002-09-19T07:18:50+09:00 Subject: Re: signed hex conversion On 2002.09.19, akolarik@sonexis.com wrote: > > There's probably a better way, but: > > > > [0xFFFFFFC4].pack("l").unpack("l")[0] # => -60 > > > > -- Dossy > > I definitely wouldn't have stumbled on that for a while ;-) > Guess I'll have to check the doc to figure out what's going on there, but in > the meantime it works! > Thanks a lot, The pack takes a Fixnum and converts it to a String of 4 bytes which represents the value ("l" means long). Then, we unpack the 4 bytes as a signed long back into a Fixnum. "L" would be unsigned. #pack and #unpack are incredibly powerful. -- Dossy -- Dossy Shiobara mail: dossy@panoptic.com Panoptic Computer Network web: http://www.panoptic.com/ "He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on." (p. 70)