负进制数如何计算?(去年我们省奥赛题目)
去年我们这里省里竞赛高中组有个题目是这样的:
大家熟悉2和16进制,现要求写一个程序实现-2和-16进制。
如-15(10进制)==110001(-2进制)
因为
110001=1*(-2)^5+1*(-2)^4+0*(-2)^3+0*(-2)^2+0*(-2)^1+1*(-2)^0
而且举例如下:
30000=11011010101110000 (-2进制)
-2500=7FB8 (-16进制)
大家帮忙想想,应该如何做呢?是不是也有相关的数学公式?
(另:按一般2/16进制数转换的短除法好象不适用了)
还有,别告诉我要用穷举 :)
谢谢!