【发布时间】:2013-07-03 07:51:19
【问题描述】:
我想创建将十进制转换为二进制字符串的新方法 Integer#to_bin。 #to_bin 的参数是位数。结果应该用前导零填充以使其具有那么多位数。
例子:
1.to_bin(4)
#=> "0001"
1.to_bin(3)
#=> "001"
1.to_bin(2)
#=> "01"
7.to_bin(1)
#=> nil
7.to_bin
#=> "111"
etс.
我尝试过的:
class Integer
def to_bin(number=nil)
if number == nil
return self.to_s(2)
else
s = self.to_s(2).size
e = number-s
one = '0'
two = '00'
three = '000'
if e==one.size
one+self.to_s(2)
elsif e==two.size
two+self.to_s(2)
elsif e==three.size
three+self.to_s(2)
end
end
end
end
如何将整数转换为用前导零填充的二进制字符串?
【问题讨论】:
-
抱歉,你想做什么?
-
十进制转二进制
-
to_s(2)不工作吗? -
不,您不是在尝试转换十进制;到斌,你试着做一些黑魔法。我在问那究竟是什么。 (将 dec 转换为 bin
to_s(2)就足够了) -
我想用零添加左填充
标签: ruby-on-rails ruby