n の補数

計算機の分野だと2の補数というのはまず間違いなく出てくる話だけど、これを一般化して任意の k 桁 n 進数 に対して n の補数と n - 1 の補数が定義できるという話はどれくらい知られているんだろう。
あと、細かいこというと、100の補数じゃなくてそれは2桁の10進数に対する10の補数だとか*1、n の補数を考える場合は常に桁数もまとめて考えないと駄目とかそういう話も。
ついでに数式で n の補数を記述してみる。k 桁の n 進数 の演算を

x - y

があったとき -y を y の n の補数に置き換えると

x + (n^k - y)

でこれが

(x - y) + n^k

なんだけど n^k を引くのは k + 1 桁目を無視するだけでよいと。
x < y の場合

n^k - (y - x)

だったりするのでこれが y - x の n の補数になっている。

*1:100の補数という表現が駄目ではないかもしれないけど、それだと2桁以上の2進数に対しても2の補数というのと整合性が取れない