如何在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" 

以下是不同格式选项的参考 。