计算机科学(cs):负数的补码为什么是“绝对值取反+1”?
一、补码
1、答:计算机所有的数字都表示为补码。在计算机中,正数、零、负数,都可以采用补码表示。补码,统一了数字在计算机中的表示方法。
2、补码:将所有的数字都采用或部分采用“非负数”的表示方法。非负数,补码是“非负数”本身;负数,补码是负数的“绝对值取反加1”。
3、负数的补码,就是负数的“绝对值、取反、加上1”。负数的表示 = 补码 + 符号位。带符号的数字的符号位,保存在“标志寄存器”的SF标志位。
二、负数的补码为什么是“取反+1”?
1、前提说明:假设计算机的寄存器最多为16位,记为“reg16”。Mexp(N),表示M的N次方。
2、理论说明:
2.1、16位寄存器(reg16),在理论上,可以表示的最大的二进制数字是:2exp(16) = 10000H(16进制)=65536(10进制)。事实上,16位寄存器(reg16)可以表示最大的二进制数字是“FFFFH”(65535,10进制)。
2.2、16位寄存器(reg16),如何表示“2exp(16)=(10000H,16进制)”?答曰:10000H = FFFFH + 1H。
3、负数的补码:
3.1、X,Y都是16进制数字。负数为X,X的补码为Y。
3.2、负数和补码的关系:X + Y = 10000H,X + Y = FFFFH + 1。所以X的补码Y可以表示为:“Y = FFFF + 1H - X”。
3.3、负数X的补码Y的说明: Y = (FFFFH - X) + 1H
3.3.1、(FFFFH - X):表示绝对值取反的过程。
三、参考资料:
1、无
标签:16,补码,取反,负数,FFFFH,cs,绝对值 From: https://www.cnblogs.com/lnlidawei/p/17055991.html