我遇到了一些我无法理解的问题.你能解释一下为什么在将int 127转换为二进制时我得到1111111的结果应该是'01111111'吗?
现在我正在尝试女巫,to_s(2)就像在这个例子中:
127.to_s(2)
Result: '1111111'
Run Code Online (Sandbox Code Playgroud)
提前致谢!
1111111 2 = 01111111 2 = 001111111 2 = 127 10 = 0127 10 = 00127 10
它应该不01111111应该是127 0127.您可以根据需要添加任意数量的前导零,但绝对没有义务或固有的理由.
1111111 2 = 1*2 7 + 1*2 6 + ... = 127
01111111 2 = 0*2 8 + 1*2 7 + 1*2 6 + ... = 127
如果你问如何01111111从127 生产,快速搜索显示以下两个解决方案:
"%08b" % 127sprintf("%08b", 127)(我不知道红宝石.)
你可以使用sprintf:
sprintf("%08b", 127) #=> "01111111"
# ^^^
# |||
# ||+- "b" = format argument as binary number
# |+-- "8" = number of digits
# +--- "0" = pad with 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |