在计算机内,定点数有3种表示法:原码、反码和补码,接下来我们就来聊聊关于计算机导论原码补码讲解?以下内容大家不妨参考一二希望能帮到您!

计算机导论原码补码讲解(为什么设计了原码还要设计反码)

计算机导论原码补码讲解

为什么会有原码、反码和补码?

在计算机内,定点数有3种表示法:原码、反码和补码

所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

正数的反码和补码都是和原码相同

负数案例:

负数的反码是将其原码除符号位之外的各位求反

[-3]反=[10000011] 反=11111100

负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。

[-3]补=[10000011] 补=11111101

一个数和它的补码是可逆的。

为什么有了原码还要设计反码和补码?

计算机只会加法不会减法!!!

计算机只会加法不会减法!!!

计算机只会加法不会减法!!!

所以两个数的减法可以看成一个正数加一个负数,如果运算时将符号位和数据位隔开单独运算,运算规则是十分复杂的。为了让减法计算更简单我们希望在计算时连同符号位一起运算。于是便有了反码,比如下面的运算

1-1=【00000001】 【11111110】=【11111111】原码为【10000000】代表-0,如果用反码运算这里0产生两个结果

当然你算其他的减法也会出错

于是便有了补码

1-1=【00000001】 【11111111】=【00000000】完美解决了上面的问题

再来试一下

5-3=【00000101】 【11111101】=【00000010】

,