Something seems to be broken for %u with negative bignums: "%u" % -5 # => "..4294967291" "%.20u" % -5 # => "..........4294967291" "%+u" % -5 # => "-5" big = -(2 ** 80 + 5) "%u" % big # => "-79226953588444722964369244155" "%.50u" % big # => "....................-79226953588444722964369244155" "%+u" % big # => "-1208925819614629174706181" big.to_s # => "-1208925819614629174706181"