Ruby -2基转换算法建议

Ruby -2基转换算法建议,ruby,math,base,Ruby,Math,Base,我试图将一个整数转换为基数-2,但在Ruby中,。to_s(-2)不被接受。你有没有其他办法把一个数字转换成-2的基数 改编自作者的评论: def negabinary(n) return negabinary(-(n>>1)) + (n & 1).to_s if n != 0 return '' end 编写使用整数除法的算法。很好地描述了这一点,包括负余数的潜在陷阱。Hmmm-2的幂等于多少,比如说8?@CarySwoveland:8在基-2中表示为(-2)^4

我试图将一个整数转换为基数-2,但在Ruby中,
。to_s(-2)
不被接受。你有没有其他办法把一个数字转换成-2的基数

改编自作者的评论:

def negabinary(n)
  return negabinary(-(n>>1)) + (n & 1).to_s if n != 0
  return ''
end

编写使用整数除法的算法。很好地描述了这一点,包括负余数的潜在陷阱。Hmmm-2的幂等于多少,比如说8?@CarySwoveland:8在基-2中表示为(-2)^4+(-2)^3(因此相应的位字符串是11000,从msb到lsb);我相信它可以很容易地翻译成Ruby
negabinary=lambda n:negabinary(-(n>>1))+str(n&1)如果n其他“”