整数2在Ruby中的4.to_s(2)中做了什么?

时间:2017-04-17 21:14:41

标签: ruby binary

这是来自CodeWars的练习。任务是实现一个函数,它将两个数字相加并以二进制形式返回它们的和。

这是我在Ruby中的解决方案。

def add_binary(a,b)
  binary_result = (a + b).to_s(2) 
end

论证(2)to_s方法做了什么?

例如:

a = 2
b = 2 

我可以跟踪结果字符串"4",但我不明白(2)参数会发生什么,以获取字符串:二进制值"100"

我试图查看整数下的Ruby文档。

https://ruby-doc.org/core-2.4.0/Integer.html#method-i-to_s

这是(2)引用基数10.它是如何工作的?代码对"4"字符串做了什么?

2 个答案:

答案 0 :(得分:2)

2指的是base 2,它是设置的实际位的字符串表示形式:

0.to_s(2) # => "0"
1.to_s(2) # => "1"
2.to_s(2) # => "10"
3.to_s(2) # => "11"
4.to_s(2) # => "100"
5.to_s(2) # => "101"
6.to_s(2) # => "110"
7.to_s(2) # => "111"
  

它是如何工作的?代码用“4”字符串做什么?

您需要研究字节的表示方式。在许多领域的编程中,至少要知道数字的二进制,十进制和十六进制表示并且能够理解它们是必不可少的。 https://en.wikipedia.org/wiki/Radix会让你开始。

to_s(n)对于许多其他用途非常有用,因此我建议您努力熟悉它。

答案 1 :(得分:0)

参数to_s采用转换的基础。 2将呈现二进制结果。 10是默认值。

4的二进制表示形式为100

1 0 0
-----
4 2 1