在计算机内,定点数有3种表示法:原码、反码和补码
所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1
计算存储的是补码
129的原码int(00000000 00000000 00000000 10000001)正数反码、补码相同
强制转成byte 留下最低8位10000001(一个负数的补码形式)
负数的补码=原码取反+1
》》》》
原码=(负数补码-1)取反
?=(10000001-1)取反=(10000000)取反=11111111=-127 注意取反的时候符号位不变
原码减1后取反=原码取反+1
绕得头疼,这一次搞定以后再不看了 |