源码
0000 0111 7 第一位之符号,0是正数,1是负数
1000 0111 -7 转成16进制 87
反码
0000 0111 7 正数的反码就是他本身
1111 1000 -7 负数的反码,符号位不动,其他的1变0,0变1 转成16进制 F8
补码
0000 0111 7 正数的补码还是他本身
1111 1001 -7 负数的补码是他的反码+1 转成16进制 F9
手机,电脑,服务器都是用的补码进行存储,内存地址就是补码的16进制
原码,反码,补码,正数都一样
负数原码取反,补码是反码+1
无符号没有符号位
原码的加法
0000 0111 +7
1000 0001 -1
取绝对值, 去掉符号位,比较大小再用相减(大减小), 加上符号
0000 0001
0000 0111 +7
0000 0001 1
0000 0110 6
0000 0111 +7
1000 1001 -9
0000 1001 +9
0000 0111 +7
0000 0010 +2
1000 0010 -2
补码加法步骤
0000 0111 +7
1000 0001 -1
1111 1110 -1反码
1111 1111 -1补码
补码加法直接加
0000 0111 +7的补码
1111 1111 -1的补码
0000 0110 第一位进位,直接把符号位+成0了,+6
0000 0111 +7
1000 1001 -9
1111 0110 -9反码
1111 0111 -9补码
直接加
0000 0111
1111 0111
1111 1110 这是一个补码,再求他的补码
1000 0001
1000 0010 这是那个数的原码 -2
计算机用的是反码,加法计算只用一步,而原码的加法需要3步或者更多,补码的+ - * /运算速度都快于原码
反码的获得是可逆的,原码求反码,和反码求原码是一样的