真值、原码、补码、反码之间的转换

真值、原码、补码、反码之间的转换

    • 真值和原码转换
    • 补码和原码转换
    • 反码和原码转换
    • 补充1:已知[y]补码,求[-y]补码
    • 补充2:移码

真值和原码转换

真值是正数,直接把“+”换成0,再用",“或者”.“隔开(整数用“,”,小数用”.")
真值是负数,直接把“-”换成1,再用",“或者”."隔开
例如:
X1=+1110 ,则X1原码=0,1110
X2=-1110 ,则X2原码=1,1110
X3=0.1101,则X3原码=0.1101
X4=-0.1101 ,则X4原码=1.1101

注意:+0和-0的原码不相等,+0为0.0000 ,-0为1.0000

补码和原码转换

对于正数:补码=原码
对于负数:补码=原码除符号位外,各位取反,末位再+1

注意:+0和-0的补码相等

反码和原码转换

对于正数:反码=原码
对于负数:反码=原码除符号位外,各位取反

注意:+0和-0的反码不相等,+0为0.0000 ,-0为1.1111

补充1:已知[y]补码,求[-y]补码

[-y]补码=[y]补码连同符号位,各位取反,末位再+1

补充2:移码

移码=补码符号位取反
所以+0和-0的移码也相等

你可能感兴趣的:(Java面试)