我有一个数值,我希望通过将其转换为二进制来创建一个字符串,然后左对齐,在右侧添加零(而不是空格)。是否可以使用单个/简单的字符串格式序列来执行此操作?
尝试包括:
"%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"
但这是最好的方法吗?
答案 0 :(得分:2)
你确定要附加到右侧吗?这会改变值:
"10110100000110101001011011000000".to_i(2)
=> 3021641408
我认为您的解决方案是最短的。 对我来说这听起来很合理,你不能格式化某些值同时更改其值 。
这就是为什么%
允许'追加'只到左侧。 (因为它的目的是格式化而不是更改值)