原码,补码,反码

来源:互联网 发布:第三波软件 编辑:程序博客网 时间:2024/06/06 14:12

源码

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步或者更多,补码的+ - * /运算速度都快于原码


反码的获得是可逆的,原码求反码,和反码求原码是一样的







1 0
原创粉丝点击