已知计算机的字长为8位,求十进制数—102的原码、反码和补码.负102的 原码11100110 (二进制)8位字长的话表示为E6 反码00011001 8位字长的话表示为19 补码 因为是负数 所以取反加1 10011010 8位字长的话表示为9A 由于此数为负数,所以首位为1 不要变化 所以反码是10011001 晕了 到底是怎么样的 有什么不同吗 帮下忙啊
问题描述:
已知计算机的字长为8位,求十进制数—102的原码、反码和补码.
负102的
原码11100110 (二进制)8位字长的话表示为E6
反码00011001 8位字长的话表示为19
补码 因为是负数 所以取反加1 10011010 8位字长的话表示为9A
由于此数为负数,所以首位为1 不要变化 所以反码是10011001
晕了 到底是怎么样的
有什么不同吗 帮下忙啊
答
因为数据在计算机中都是以二进制表示的,编译系统对于不同类型的变量分配不同大小的存贮空间,制定不同的取值范围.比如整型在计算机中的存储用2个字节16位的存储空间,其中的最高位代表符号位的,符号位为0表示的是正数,符号位为1表示为负数,整型数据在内存中以二进制的补码存放.
以10和-10说明正数在内存中的存放形式:
十进制 10 -10
二进制原码 0000000000001010 1000000000001010
二进制反码 0000000000001010 1111111111110101
二进制补码 0000000000001010 1111111111110110
楼主一看便知的,此处我是举的字长为16位的时候的,8位的时候只需要去除中间的8位即可的.当为负数的时候,首位为1,不管是原码、反码还是补码都不变的,补码是在原码的基础上加1得到的,反码是在原码的基础上除了首位而外全部取反得到的.