原码,反码与补码的概念以及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,任意数都是以其二进制的补码形式存储在内存中
因为计算机中只有加法没有减法,为了更加低成本的计算出结果,所以用补码的形式存储数据。