计组第二章补充
对于补码,真值、原码、移码、反码的全面总结,一共二十种(可以优化表述
具体补位的长度看题目给定,如果给定字长为X位就进一步补位数即可
真值-补码:
正数:即为正数转原码,原码补码相同,数值位高位补0
负数:即为负数转原码,原码转反码,反码转补码
最高位符号位定1,数值位高位补0转为原码
除符号位最高位全部取反转为反码
低位加一转为补码
真值-原码:
正数:数值位高位补0
负数:最高位符号位定1,数值位高位补0
真值-反码:
正数:即为正数转原码,原码反码相同,数值位高位补0
负数:即为负数转原码,原码转反码
最高位符号位定1,数值位高位补0转为原码
除符号位最高位全部取反转为反码
真值-移码(仅适用于偏移量为恰到好处的:
正数:即为正数转原码,原码转补码,补码转移码,而原码补码相同
即为正数转原码,原码补码相同,数值位高位补0,然后符号位取反
负数:即为负数转原码,原码转反码,反码转补码,补码转移码
最高位符号位定1,数值位高位补0转为原码
除符号位最高位全部取反转为反码
低位加一转为补码
符号位取反转为移码
原码-真值:
正数:即数值位,二进制真值
负数:即负号加数值位,负的二进制真值
原码-补码:
正数:即原码,原码补码相同
负数:即原码转反码转补码
除符号位最高位全部取反转为反码
低位加一转为补码
原码-反码:
正数:即原码,原码反码相同
负数:即原码转反码
除符号位最高位全部取反转为反码
原码-移码:
正数:即原码转移码
符号位取反
负数:即原码转反码,反码转补码,补码转移码
除符号位最高位全部取反转为反码
低位加一转为补码
符号位取反转为移码
反码-真值:
正数:即原码转真值,正数反码原码相同
即数值位,二进制真值
负数:即反码转原码,原码转真值
除符号位全部取反
负号加数值位,负的二进制真值
反码-原码:
正数:即原码,正数反码补码原码相同
负数:即反码转原码,除符号位全部取反
反码-补码:
正数:即原码,正数反码补码原码相同
负数:即反码转补码
末尾加一即为补码
反码-移码:
正数直接取反符号位,负数先加一转为补码后符号位取反
补码-原码:
正数:即原码,正数原码反码补码相同
负数:即补码求原码
除符号位全部取反,然后再加一,即对补码求一次补码得到原码
补充:已知y补码,求-y补码
-y补码=y补码连同符号位,各位取反,末位再+1
补码-真值:
正数:即原码求真值,正数补码反码原码相同,即数值位,二进制真值
负数:即补码转原码,原码转真值
除符号位全部取反,然后再加一,即对补码求一次补码得到原码
即负号加数值位,得到负的二进制真值
补码-反码:
正数:即补码,正数原码补码反码相同
负数:即补码转原码,原码转补码
除符号位全部取反,然后再加一,即对补码求一次补码得到原码
除符号位外再度取反得到反码
补码-移码:
正数:符号位取反
负数:符号位取反
移码-真值:
直接将机器数转为十进制数,然后减去偏移量得到十进制真值
真值转移码大不了直接加上偏移量然后转为二进制机器数,不需要刻意带符号
移码-反码:
符号位取反得到补码
正数:反码补码原码相同,即为反码
负数:补码转原码,原码转反码
符号位不变其他位取反,加一得到原码
符号位不变其他取反得到原码
移码-补码:
符号位取反得到补码
移码-原码:
符号位取反得到补码
正数:补码原码反码一样,即为原码
负数:补码转原码
符号位不变其他位取反,加一得到原码