右填充或零填充左对齐字符串
Right-padding, or, zero-padding a left-justified string
我有一个数值,我想通过将其转换为二进制然后左对齐、在右侧附加零(而不是空格)来创建一个字符串。是否可以使用 single/simple 字符串格式序列来做到这一点?
尝试包括:
"%032b" % 94426294 #=> "00000101101000001101010010110110"
"%-032b" % 94426294 #=>"101101000001101010010110110 "
"%0-32b" % 94426294 #=>"101101000001101010010110110 "
"%-032b0" % 94426294 #=>"101101000001101010010110110 0"
"%-b032" % 94426294 #=>"101101000001101010010110110032"
"%-032.30b" % 94426294 #=>"000101101000001101010010110110 "
format("%-32b",94426294) #=>"101101000001101010010110110 "
format("%-32.32b",94426294) #=>"00000101101000001101010010110110"
我可以通过类似
的方式得到我想要的东西
("%b" % 94426294).ljust(32,'0') #=>"10110100000110101001011011000000"
但这是可用的最佳方法吗?
您确定要追加到右侧吗?这将更改值:
"10110100000110101001011011000000".to_i(2)
=> 3021641408
我认为你的解决方案是最短的。
这对我来说听起来很合理,你不能格式化一些值改变它的值同时。
这就是为什么 %
只允许 'appending' 到左侧。 (因为它的目的是格式化而不是改变值)
我有一个数值,我想通过将其转换为二进制然后左对齐、在右侧附加零(而不是空格)来创建一个字符串。是否可以使用 single/simple 字符串格式序列来做到这一点?
尝试包括:
"%032b" % 94426294 #=> "00000101101000001101010010110110"
"%-032b" % 94426294 #=>"101101000001101010010110110 "
"%0-32b" % 94426294 #=>"101101000001101010010110110 "
"%-032b0" % 94426294 #=>"101101000001101010010110110 0"
"%-b032" % 94426294 #=>"101101000001101010010110110032"
"%-032.30b" % 94426294 #=>"000101101000001101010010110110 "
format("%-32b",94426294) #=>"101101000001101010010110110 "
format("%-32.32b",94426294) #=>"00000101101000001101010010110110"
我可以通过类似
的方式得到我想要的东西("%b" % 94426294).ljust(32,'0') #=>"10110100000110101001011011000000"
但这是可用的最佳方法吗?
您确定要追加到右侧吗?这将更改值:
"10110100000110101001011011000000".to_i(2)
=> 3021641408
我认为你的解决方案是最短的。 这对我来说听起来很合理,你不能格式化一些值改变它的值同时。
这就是为什么 %
只允许 'appending' 到左侧。 (因为它的目的是格式化而不是改变值)