为什么0的补码形式只有一种?

补码的存在是为了变减法为加法,简化了计算过程,即硬件的设计难度。
首先要知道两个零是怎么来的,0包括+0和-0,在原码和反码中根据其计算公式,
针对于0原码有两种表示形式:
+0:0000 0000
-0: 1000 0000
一个数如果为正,则它的原码、反码、补码相同。
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。
为了简单起见,我们用1个字节来表示一个整数。
0的补码表示+0的补码:0000 0000
0的补码表示-0的补码:
第一步:1111 1111
第二步+1= 1 0000 0000
第三部:进位1被丢弃,即0000 0000 与+0的补码相同

1、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:
使用补码,可以将符号位和其它位统一处理;
同时,减法也可按加法来处理。
另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

2、补码与原码的转换过程几乎是相同的。

核心知识点:

1. 正数的原码、反码和补码都相同;
2. 负数原码和反码的相互转换:符号位不变,数值位按位取反;
3. 负数原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1;
4. 0的补码表示只有一种。

你可能感兴趣的:(java基础知识)