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.x1x2⋯xn(小数点前面的1表示符号位为负号)反码A(x)=1.x1‾x2‾⋯xn‾补码C(x)=A(x)+2−n=1.x1‾x2‾⋯xn‾+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.1111C(x)=A(x)+2−4=0.1111+0.0001=1.0000可见x1⋯x4所有bit看起来都被取反了(最极端的进位连锁反应)此处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.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)又比如 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<0x<0x<0的情况
补码的左右移位的填补规则依赖于如下规律
下面仅讨论定点小数的情况,整数的情况手法类似,结论适用
对于x<0x<0x<0;
机器字长为n+1;符号位占走1位,有n位留给数值位
原码T(x)=1.x1x2⋯xm⋯xnT(x)=1.x_1x_2\cdots{x_m}\cdots{x_n}T(x)=1.x1x2⋯xm⋯xn
假设从低位到高位观察T(x)的小数部分,第一个值为1的位值出现在xmx_mxm这个位置上
换句话说,如果没有精度/机器字长补齐要求,那么xm+1⋯xnx_{m+1}\cdots{x_n}xm+1⋯xn这部分的小数位都是0,它们可以不写
反码C1(x)=1.x1‾x2‾⋯xm‾⋯xn‾反码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)=c0.c1⋯cn=x0.c1⋯cnC(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}}
$$
🎈可见,xmx_mxm是无论是T(x)还是C(x)T(x)还是C(x)T(x)还是C(x)
🎈同时:
我们把真值x的补码C(x)的数值位分为两部分:
casesA:如果真值二进制数值位部分没有1(全为0),那么这种情况下,真值x=0x=0x=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+1m\geqslant{n+1}m⩾n+1
🎈上面两个结论对于x>0x>0x>0的是时候也显然是成立的(因为x>0x>0x>0时,原码补码反码一致!)
两个n位数相加,结果位数不超过n+1位
推导
x+y⩽∣x+y∣⩽∣x∣+∣y∣两个最大的n位r进制数的求和结果:记q=r−1(就是表示最大的数码)例如:如果r=10(十进制),那么q=9)最小n位数:rn−1=10⋯00⏟n−1个0⏞n位数最大的n位数:rn−1=q⋯qq⏟n个q最小n+1位数:rn例如n=2,10和99分别是最小2位数和最大两位数2个最大n位数相加:A=(rn−1)+(rn−1)=2(rn−1)最大n位数的r倍B=r(rn−1)=q⋯qq⏟n个q0(A