Signed hex conversion

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 :wink:
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,
– Tony

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

···

On 2002.09.19, akolarik@sonexis.com 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 :wink:
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,


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)