I know that I can use Fixnum#to_s
to represent integers as strings in binary format. However 1.to_s(2)
produces 1
and I want it to produce 00000001
. How can I make all the returned strings have zeros as a fill up to the 8 character? I could use something like:
binary = "#{'0' * (8 - (1.to_s(2)).size)}#{1.to_s(2)}" if (1.to_s(2)).size < 8
but that doesn't seem very elegant.
Use string format.
"%08b" % 1
# => "00000001"
Using String#rjust
:
1.to_s(2).rjust(8, '0')
=> "00000001"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With