如何在Ruby中返回整数的固定长度二进制表示形式?
我知道我可以使用如何在Ruby中返回整数的固定长度二进制表示形式?,ruby,string,binary,integer,Ruby,String,Binary,Integer,我知道我可以使用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 binary=“#{0'*(8-(1.to_s(2)).size)}{1.to_s(2)}”如果(1.to_s(2)).size
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
binary=“#{0'*(8-(1.to_s(2)).size)}{1.to_s(2)}”如果(1.to_s(2)).size<8
但这似乎不是很优雅。使用该方法格式化字符串
"%08d" % 1.to_s(2)
# => "00000001"
以下是不同格式选项的示例。使用字符串格式
"%08b" % 1
# => "00000001"
使用:
很好的链接和很好的答案(+1)
1.to_s(2).rjust(8, '0')
=> "00000001"