今天偶然打开了noip2000 day1 t1——进制转换,发现我对于负进制转换仍然很迷茫。
取余
注:取余运算用于整数运算
正数取余
我们取正整数 a b
,有 a mod b = a - a / b
负数取余
在正数取余中,我们会将余数保持为正整数,在负数取余中,我们也应如此。
如:
2
=
−
6
−
4
×
(
−
2
)
2 = -6 - 4 \times (-2)
2=−6−4×(−2)
其中,2即是
−
6
m
o
d
4
-6 \mod 4
−6mod4 的解。通过取b
为负数来使得a%b
变为正数
进制
我们定义一个进制数R
正进制转换
除R
取余
比如,我们将十进制数6转换为2进制数,过程如下:
6 (10)= 110 (2)
负进制转换
我们需要按照保证余数为正的原则来进行进制转换
-6 (10) = 11010 (-2)