关于原码、反码和补码的个人总结

最近复习了一下计算机组成原理,关于原码、反码和补码有了全新的认识。

众所周知,计算机内的数据都是以二进制机器数的形式表示,原码、反码、补码的出现,是为了计算机硬件能更加方便直接地使用数据,是否有利于运算器设计的优化以及简化。

机器数对应的实际数值称为真值,符号用"+","-"表示.

机器数有有符号和无符号之分,

有符号的机器数,用二进制的最高位表示真值的符号,"0"表示正数,"1"表示负数.

对于无符号而言, 无符号数均是正数, 在机器数中没有符号位。若约定小数点的位置在最低位之后, 则表示纯整数; 若小数点的位置在最高位之后, 则表示纯小数.

为了机器运算, 带符号的机器数可以用原码, 反码 ,补码, 移码等不同的码制.

由于原码和反码不利于做减法, 即不同符号位的数值相加, 因此诞生了补码(至于为何原码和反码不利于机器做减法, 请体会举例2). 在带符号数的运算中, 可以这样说, 原码和反码都是为了转换成补码的中间数.

原码即将真值写成二进制的形式,最高位为符号位. 有+0和-0之分.

反码即将符号位为1的原码, 除符号位外, 按位取反. 正数不变. 有+0和-0之分.

补码即将符号位为1的反码末位加1,正数不变. 无+0和-0之分, 0的补码即为[+0]的原码. 可表示的数比原码和反码多一个.

举例1:

若机器的字长为4, 真值1,-1,7,-7, 4,-4的原码,反码和补码表示如下:

 

1

-1

7

-7

4

-4

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值