在十进制中表示正负数会有专门的符号来区分,而在二进制中,怎样表示正负数呢???
在二进制中表示负数时,一般会把位权的最高位上的数字作为符号来使用,因此,位权的最高位也称为符号位。
符号位为 0,表示正数;符号位为 1,表示负数。
例:
我们都知道十进制数 1, 用二进制表示是:0000 0001,那么,-1用二进制怎么表示呢?
可能有人会说,把0000 0001的符号位变成1不就完了吗? 也就是表示成这样:1000 0001
真的是这样吗?
我们都知道:1 + (-1)= 0,那么我们将用二进制表示的1和-1相加,看看等不等于0:
0000 0001 + 1000 0001 = 1000 0010 (十进制表示是 -128)
那 -1用二进制表示是怎样的呢?
这里我们用到的方法叫做“二进制的补数”,补数就是用正数来表示负数。而求补数的方法叫做“取反加一”。
取反加一法可以分成两步来计算:第一步:取反。 在二进制数中,只有0和1;我们将0变成1,将1变成0,就叫取反。
第二步:加一。 将取反得到的数+1.
例如,要用八位二进制数表示 -1,就得先求得 1的二进制数,也就是0000 0001,然后用0000 0001的补数来表示 -1。 先取反:1111 1110,再加一:1111 1111。 验证:0000 0001 + 1111 1111 = 1 0000 0000 在这里,出现了最高位溢出的情况,也就是说在八位的范围内进行运算时,1 0000 0000中的 1 溢出,1 0000 0000就被计算机认为是0000 0000了
这里也请大家记住一个法则:将二进制的数取反加一后,与原来的值相加,结果为0
注:当运算结果为负数时,该结果为补数表示形式。例如:十进制运算 6 - 9 = -3,如果用二进制数进行运算的话,-3将会被补数形式表示。