the .hex sprintf thing won't work for negative values

```ruby
irb(main):005:0> sprintf('%#x', value.to_s.hex)
=> "0x..fbce"
```