1. 加法逆元
对于任意一个整数 x , 存在另外一个数 y , 使得 x + y = 0. 则称, x 和 y 互为加法逆元.
1.1 无符号逆元
对满足
0
≤
x
<
2
w
0\le x < 2^w
0≤x<2w 的任意
x
x
x , 其
w
w
w 位的无符号逆元
−
w
u
x
-_w^ux
−wux 由下式给出 :
−
w
u
x
=
{
x
,
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
=
0
2
w
−
x
,
.
.
.
.
.
.
.
x
>
0
-_w^ux= \begin{cases} x,...............x=0\\ 2^w-x,.......x>0\\ \end{cases}
−wux={x,...............x=02w−x,.......x>0
即
+
w
u
x
+_w^ux
+wux ,
−
w
u
x
-_w^ux
−wux 互为逆元.
−
w
u
x
+
w
u
x
=
0
-_w^ux+_w^ux = 0
−wux+wux=0 .
1.2 补码的非
对满足
T
m
i
n
w
≤
x
≤
T
m
a
x
w
Tmin_w\le x \le Tmax_w
Tminw≤x≤Tmaxw 的任意
x
x
x , 其
w
w
w 位的逆元
−
w
t
x
-_w^tx
−wtx 由下式给出 :
−
w
t
x
=
{
T
m
i
n
w
,
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
=
T
m
i
n
w
−
x
,
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
>
T
m
i
n
w
-_w^tx= \begin{cases} Tmin_w,...............x=Tmin_w\\ -x,.....................x>Tmin_w\\ \end{cases}
−wtx={Tminw,...............x=Tminw−x,.....................x>Tminw
即
+
w
t
x
+_w^tx
+wtx ,
−
w
t
x
-_w^tx
−wtx 互为逆元.
−
w
t
x
+
w
t
x
=
0
-_w^tx+_w^tx = 0
−wtx+wtx=0 .
注意: 补码非 − x -x −x 的两种算法:
- − x -x −x 和 ~ x + 1 x+1 x+1 结果完全一致.
- 将 x x x 的位向量分成两部分, 假设 k k k 是最右边的 1 的位置 , 因而 x x x 的位级表示形如 [ $x_{w-1} , x_{w-2}, … , x_{k+1} , 1, 0 , … , 0 $] ( 只要 x x x ≠ 0 就能找到这样的 k k k ), 这个值的非写成二进制格式就是 [ ~ x w − 1 x_{w-1} xw−1 , ~ x w − 2 x_{w-2} xw−2 , … , ~ x k + 1 x_{k+1} xk+1 , 1 , 0 , … , 0 ] . 也就是, 对 k k k 左边的所有位取反.