Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中返回整数的固定长度二进制表示形式?_Ruby_String_Binary_Integer - Fatal编程技术网

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