KaTeX parse error: Undefined control sequence: \set at position 27: …,我们有规律: \\ y\in\̲s̲e̲t̲{0,1} \\ 1-y=\b…
KaTeX parse error: Undefined control sequence: \set at position 27: …,我们有规律: \\ y\in\̲s̲e̲t̲{0,1} \\ 1+y= \…
例 如 : 真 值 x < 0 原 码 T ( x ) = 1. x 1 x 2 ⋯ x n ( 小 数 点 前 面 的 1 表 示 符 号 位 为 负 号 ) 反 码 A ( x ) = 1. x 1 ‾ x 2 ‾ ⋯ x n ‾ 补 码 C ( x ) = A ( x ) + 2 − n = 1. x 1 ‾ x 2 ‾ ⋯ x n ‾ + 2 − n 例如:真值x<0 \\原码T(x)=1.x_1x_2\cdots{x_n} \\(小数点前面的1表示符号位为负号) \\反码A(x)=1.\overline{x_1}\ \overline{x_2}\cdots{\overline{x_n}} \\补码C(x)=A(x)+2^{-n}=1.\overline{x_1}\ \overline{x_2}\cdots{\overline{x_n}}+2^{-n} 例如:真值x<0原码T(x)=1.x1x2⋯xn(小数点前面的1表示符号位为负号)反码A(x)=1.x1 x2⋯xn补码C(x)=A(x)+2−n=1.x1 x2⋯xn+2−n
KaTeX parse error: Undefined control sequence: \set at position 228: …line{x_m};(m\in\̲s̲e̲t̲{1,\cdots,n}) \…
例 如 : A ( x ) = 0.1111 C ( x ) = A ( x ) + 2 − 4 = 0.1111 + 0.0001 = 1.0000 可 见 x 1 ⋯ x 4 所 有 b i t 看 起 来 都 被 取 反 了 ( 最 极 端 的 进 位 连 锁 反 应 ) 此 处 m = 1 例如:A(x)=0.1111 \\C(x)=A(x)+2^{-4}=0.1111+0.0001=1.0000 \\可见x_1\cdots{x_4}所有bit看起来都被取反了(最极端的进位连锁反应) \\此处m=1 例如:A(x)=0.1111C(x)=A(x)+2−4=0.1111+0.0001=1.0000可见x1⋯x4所有bit看起来都被取反了(最极端的进位连锁反应)此处m=1
又 比 如 T ( x ) = 0.01100 A ( x ) = 0.10011 C ( x ) = A ( x ) + 2 − 5 = 0.10011 + 0.00001 = 0.10100 此 处 m = 3 记 C ( x ) = 0. x 1 x 2 x 3 x 4 x 5 可 以 看 到 x 的 补 码 C ( x ) 的 x 1 x 2 位 置 和 x 的 原 码 x 1 x m − 1 位 置 的 数 码 一 致 ( x 1 ⋯ x m − 1 ) ( m = 3 ) x m ⋯ x n 和 x 的 原 码 的 x m ⋯ x n 是 一 致 的 ( m = 3 , n = 5 ) 又比如 T(x)=0.01100 \\ A(x)=0.10011 \\ C(x)=A(x)+2^{-5}=0.10011+0.00001=0.10100 \\此处m=3 \\记C(x)=0.x_1x_2x_3x_4x_5 \\可以看到x的补码C(x)的x_1x_2位置和x的原码 \\x_1x_{m-1}位置的数码一致(x_1\cdots{x_{m-1}})(m=3) \\x_m\cdots{x_n}和x的原码的x_m\cdots{x_n}是一致的(m=3,n=5) 又比如T(x)=0.01100A(x)=0.10011C(x)=A(x)+2−5=0.10011+0.00001=0.10100此处m=3记C(x)=0.x1x2x3x4x5可以看到x的补码C(x)的x1x2位置和x的原码x1xm−1位置的数码一致(x1⋯xm−1)(m=3)xm⋯xn和x的原码的xm⋯xn是一致的(m=3,n=5)
用 C ( x ) 表 示 x 的 补 码 ; 用C(x)表示x的补码; 用C(x)表示x的补码;
证 明 C ( − x ) = − C ( x ) 证明C(-x)=-C(x) 证明C(−x)=−C(x)
当 x > 0 当x>0 当x>0
KaTeX parse error: Undefined control sequence: \set at position 579: …ine{x_i}(x_i\in\̲s̲e̲t̲{0,1}) \end{ali…
类似的可以证明 x < 0 x<0 x<0的情况
补码的左右移位的填补规则依赖于如下规律
下面仅讨论定点小数的情况,整数的情况手法类似,结论适用
对于 x < 0 x<0 x<0;
机器字长为n+1;符号位占走1位,有n位留给数值位
原码 T ( x ) = 1. x 1 x 2 ⋯ x m ⋯ x n T(x)=1.x_1x_2\cdots{x_m}\cdots{x_n} T(x)=1.x1x2⋯xm⋯xn
假设从低位到高位观察T(x)的小数部分,第一个值为1的位值出现在 x m x_m xm这个位置上
换句话说,如果没有精度/机器字长补齐要求,那么 x m + 1 ⋯ x n x_{m+1}\cdots{x_n} xm+1⋯xn这部分的小数位都是0,它们可以不写
反 码 C 1 ( x ) = 1. x 1 ‾ x 2 ‾ ⋯ x m ‾ ⋯ x n ‾ 反码C_1(x)=1.\overline{x_1}\ \overline{x_2} \cdots{\overline{x_m}}\cdots{\overline{x_n}\ } 反码C1(x)=1.x1 x2⋯xm⋯xn
补码 C ( x ) = c 0 . c 1 ⋯ c n = x 0 . c 1 ⋯ c n C(x)=c_0.c_1\cdots{c_n}=x_0.c_1\cdots{c_n} C(x)=c0.c1⋯cn=x0.c1⋯cn:
$$
C(x)
=C_1(x)+2^{-n}
=1.\overline{x_1}\ \overline{x_2}
\cdots{\overline{x_{m-1}}}\underset\blacktriangle{0}
\underbrace{1\cdots{11}}{\overline{x{m+1}}\cdots\overline{x_n}}
+2^{-n}
\=1.\overline{x_1}\ \overline{x_2}
\cdots{\overline{x_{m-1}}}\underset\blacktriangle{1}
\underbrace{{0}\cdots{00}}{\overline{x{m+1}}\cdots\overline{x_n}}
$$
🎈可见, x m x_m xm是无论是 T ( x ) 还 是 C ( x ) T(x)还是C(x) T(x)还是C(x)
🎈同时:
我们把真值x的补码C(x)的数值位分为两部分:
casesA:如果真值二进制数值位部分没有1(全为0),那么这种情况下,真值 x = 0 x=0 x=0
casesB:否则,真值的数值位二进制数码表示中有1
即, m ∈ [ 1 , n ] m\in[1,n] m∈[1,n]
m ⩽ 1 时 , 无 论 x 的 正 负 , 补 码 和 原 码 具 有 一 样 的 形 式 ( C ( x ) = T ( x ) ) m\leqslant{1}时,无论x的正负,补码和原码具有一样的形式(C(x)=T(x)) m⩽1时,无论x的正负,补码和原码具有一样的形式(C(x)=T(x))
m ⩾ n + 1 m\geqslant{n+1} m⩾n+1
🎈上面两个结论对于 x > 0 x>0 x>0的是时候也显然是成立的(因为 x > 0 x>0 x>0时,原码补码反码一致!)
两个n位数相加,结果位数不超过n+1位
推导
x + y ⩽ ∣ x + y ∣ ⩽ ∣ x ∣ + ∣ y ∣ 两 个 最 大 的 n 位 r 进 制 数 的 求 和 结 果 : 记 q = r − 1 ( 就 是 表 示 最 大 的 数 码 ) 例 如 : 如 果 r = 10 ( 十 进 制 ) , 那 么 q = 9 ) 最 小 n 位 数 : r n − 1 = 1 0 ⋯ 00 ⏟ n − 1 个 0 ⏞ n 位 数 最 大 的 n 位 数 : r n − 1 = q ⋯ q q ⏟ n 个 q 最 小 n + 1 位 数 : r n 例 如 n = 2 , 10 和 99 分 别 是 最 小 2 位 数 和 最 大 两 位 数 2 个 最 大 n 位 数 相 加 : A = ( r n − 1 ) + ( r n − 1 ) = 2 ( r n − 1 ) 最 大 n 位 数 的 r 倍 B = r ( r n − 1 ) = q ⋯ q q ⏟ n 个 q 0 ( A < B ) 最 小 n + 2 位 数 : C = r n + 1 C B = r ( r n − 1 ) 2 ( r n − 1 ) = r 2 容 易 知 道 , 当 r ⩾ 2 时 : B ⩽ C 从 而 A < B ⩽ C , 即 A < C 因 此 , 两 个 n 位 数 相 加 , 位 数 无 法 达 到 n + 2 位 , 最 多 达 到 n + 1 位 x+y\leqslant|x+y|\leqslant|x|+|y| \\ 两个最大的n位r进制数的求和结果: \\记q=r-1(就是表示最大的数码) \\例如:如果r=10(十进制),那么q=9) \\最小n位数:r^{n-1}=\overbrace{1\underbrace{0\cdots{00}}_{n-1个0}}^{n位数} \\最大的n位数:r^n-1=\underbrace{q\cdots{qq}}_{n个q} \\最小n+1位数:r^n \\ \\例如n=2,10和99分别是最小2位数和最大两位数 \\ \\2个最大n位数相加: \\A=(r^n-1)+(r^n-1)=2(r^n-1) \\最大n位数的r倍 \\B=r(r^n-1)=\underbrace{q\cdots{qq}}_{n个q}0 \\(Ax+y⩽∣x+y∣⩽∣x∣+∣y∣两个最大的n位r进制数的求和结果:记q=r−1(就是表示最大的数码)例如:如果r=10(十进制),那么q=9)最小n位数:rn−1=1n−1个0 0⋯00 n位数最大的n位数:rn−1=n个q q⋯qq最小n+1位数:rn例如n=2,10和99分别是最小2位数和最大两位数2个最大n位数相加:A=(rn−1)+(rn−1)=2(rn−1)最大n位数的r倍B=r(rn−1)=n个q q⋯qq0(A<B)最小n+2位数:C=rn+1BC=2(rn−1)r(rn−1)=2r容易知道,当r⩾2时:B⩽C从而A<B⩽C,即A<C因此,两个n位数相加,位数无法达到n+2位,最多达到n+1位