负数的原码高位(右边为1,如[-11]原=10001011)
正数的反码=原码
负数的反码除最高为不变(0表示正数,1表示负数),后七位全部取反,如[-11]反=11110100
正数的补码=原码
负数的补码是在该数的反码加1,如[-11]补=11110100+1=11110101
同理
[-67]原=11000011 [-67]反=00111100 [-67]补=00111101
51是正数,所以原码和反码都一样:是110011-67:
1、先求出67的二进制是:1000011
2、-67的原码就是最高位为1,其他位不变:11000011
3、反码是在原码的基础上求反(符号位不变):10111100
反码是将其2进制数每一位按位取反,即1改为0,0改为1。补码则不同,正数的补码是其源码本身
,负数的补码是其除符号位以外其他每一位按位取反再加一,符号位不变。 *** 作方法如下:
1、原码转换为反码:符号位不变,数值位分别“按位取反” 。
2、反码转换为原码也是一样:符号位不变,数值位分别“按位取反” 。
3、原码转换为补码:符号位不变,数值位按位取反,末位再加1。
4、补码转换为原码:符号位不变,数值位按位取反,末位再加1。即补码的补码等于原码。
5、最后求补(变补),即已知[X]补,求[-X]补 。符号位和数值位都取反,末位再加1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)