基数Nの数の補集合を見つけるアルゴリズムまたは方法を知っていますか?
For example number 001112 which is in base 3 .
ありがとうございました
基数Nの数の補集合を見つけるアルゴリズムまたは方法を知っていますか?
For example number 001112 which is in base 3 .
ありがとうございました
For a number with k digits, subtract it from (Nk)N (perform the subtraction in base N, of course).
補数の定義については、http: //www.enggpedia.com/computer-engineering-encyclopedia/dictionary/dgital-logic-design/1603-complements-types-of-complements-radix-a-diminished-radix-complementを参照してください。 。
あなたの例では、補数は3 ^ 6 --001112(base 3)=(333333 + 1-001112)(base 3)=(332221 + 1)(base 3)=332222です。
編集:
以下のコメントはもちろん正しいです。そのような間違った例を投稿してすみません。私が言いたかったことを再定式化しようとしましょう(そして私が再び間違っている場合は私を訂正してください):
ベース3で表されるあなたの例は、次のとおりです。
1000000
- 001112
--------
= 221111
問題は、最後の1を追加する必要があるかどうかです。
符号なしの数値しかない場合は、1を追加する必要はありませんが、補数には算術的な意味はありません。
符号付きの数値がある場合、補集合は元の数値の一種の負の数として解釈できますが、負の数自体としては解釈できません。2進数の例2:の
場合n = 01101
、の1の補数はn
です10010
。両方を足すと、もちろん結果は11111
ゼロではありません。したがって、の1の補数はn
NOT-n
です。しかし、最後の1を追加すると00000
、つまりゼロになります。したがって、1の補数を作成し、1を追加した結果は、2の補数と呼ばれます。、およびこれはと解釈できます-n
。
同じことがどの基地にも当てはまると思います。