原码,反码与补码的概念以及Java中数的存储方式

*原码,反码,补码必须满8位,不足在前填0;

1,原码:用符号位和数值位表示一个带符号的数

+  -> 0                 -   -> 1     表示数的范围-127~+127

例如:[+10011]原=00010011    [-10011]原=10010011     [+0]原=00000000       [-0]原=10000000

2,反码:正数的反码与原码相同,负数的反码是对该数的原码除符号位各位取反

例如:[+10011]反=00010011  [-10011]反=11101100    [+0]反=00000000     [-0]反=11111111

*任意数的反码的反码为原码本身

3,补码:正数的补码与原码相同,负数的补码是对该数的原码除符号位外各位取反,末位加1

例如:[+10011]补=00010011  [-10011]补=11101101    [+0]补=[-0]补=00000000

*任意数的补码的补码为原码本身

4,任意数都是以其二进制的补码形式存储在内存中

因为计算机中只有加法没有减法,为了更加低成本的计算出结果,所以用补码的形式存储数据。

猜你喜欢

转载自www.cnblogs.com/lq13035130506/p/9749896.html