这是来自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"
字符串做了什么?
答案 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