【问题标题】:How to return a fixed length binary representation of an integer in Ruby?如何在Ruby中返回整数的固定长度二进制表示?
【发布时间】:2013-11-20 03:19:54
【问题描述】:

我知道我可以使用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

但这似乎不是很优雅。

【问题讨论】:

    标签: ruby string binary integer


    【解决方案1】:

    使用字符串格式。

    "%08b" % 1
    # => "00000001"
    

    【讨论】:

      【解决方案2】:

      使用String#rjust:

      1.to_s(2).rjust(8, '0')
      => "00000001"
      

      【讨论】:

        【解决方案3】:

        使用String#%方法格式化字符串

         "%08d" % 1.to_s(2)
         # => "00000001" 
        

        这是一个reference,用于不同的格式选项。

        【讨论】:

        • 很好的链接和很好的答案(+1)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 1970-01-01
        • 2014-08-20
        • 2018-08-03
        • 1970-01-01
        • 2017-07-11
        相关资源
        最近更新 更多