如何在Ruby中返回一个整数的固定长度二进制表示?
我知道我可以使用Fixnum#to_s
将整数表示为二进制格式的字符串。 但是1.to_s(2)
产生1
并且我希望它产生00000001
。 如何使所有返回的字符串都填充为8个字符的零? 我可以使用类似的东西:
binary = "#{'0' * (8 - (1.to_s(2)).size)}#{1.to_s(2)}" if (1.to_s(2)).size < 8
但这似乎并不优雅。
使用字符串格式。
"%08b" % 1 # => "00000001"
使用String#rjust
:
1.to_s(2).rjust(8, '0') => "00000001"
使用String#%
方法格式化字符串
"%08d" % 1.to_s(2) # => "00000001"
以下是不同格式选项的参考 。