Ren*_*h G 6 algorithm bit-manipulation
我想找到9的数字补码但失败了.
我尝试了1和2的补充方法,但没有效果.
找出N的数字补码的常用方法是什么?
小智 8
n补充使用:(简单的三步法).
假设512 - 96 = ?(两个数字都以基数n给出,比如基数:14).
求(第二个要减去的数字)的n-1补码96.
13的补充099是DDD - 096 = D47(因为A = 10,B = 11,C = 12,D = 13).
n通过添加补码值1来查找补n - 1码.14的补充是D47 + 1 = D48.
512使用n's补码(D48)添加第一个数字()并保留进位.512 + D48 = 45A(随身携带1).
校验:
512(14 base) = 996(10 base)
96(14 base) = 132(10 base)
996-132 = 864(base 10) = 45A(base 14) HENCE CHECKED.
Run Code Online (Sandbox Code Playgroud)
通过从9中减去每个数字,找到基数10中的9的补数.
所以45(= ... 000045)变为54(= ... 999954).
Ten的补码只是9的补码加1.所以... 000045变为(... 999954 + 1)= ... 999955.
关于维基百科的更多信息.