原码、反码、补码的转化

原码

原码是二进制表示法的最基本形式

它直接用来表示整数的符号位和数值位

最左边的是符号位,1表示负数,0表示正数

[10011000]是负数

[00011000]是正数

反码

反码是为了解决原码的正负数相加减出现溢出问题而引入的一种表示方法

反码是将原码的符号位保持不变,其余位数按位取反

补码

补码是为了解决原码和反码都无法完全解决正负数相加减溢出的问题而引入的一种表示方法

补码的特点是将原码的符号位不变,其他位取反后再加上1

原码、反码、补码的转化

正数的原码、反码、补码相同

负数的

[1001 1000] 原

[1110 0111] 反

[1110 1000] 补

最左边那位是符号位,保持不变

加法运算

00011100[原] + 10001100[原]

上面两个数都是带符号的原码

第一步:

将原码转换为补码,正数的补码相同,1000 1100的补码为1111 0100

第二步:

进行加法运算 0001110[补] + 11110100[补] = 100100000[补](9位)

原来的数是八位,结果变成了九位,最高位溢出,保留低8位,即 0010 0000

第三步:

将结果变为原码,因为正数的补码和原码相同不用变

00011100[原] + 10001100[原] = 0010 0000[原]

减法运算

减法运算可以转化为补码的加法运算

00011100[原] - 10001100[原]

第一步:

变成加法运算,减数的符号位取反

00011100[原] + 00001100[原]

第二步:

转化为补码,正数补码相同

00011100[补] + 00001100[补]

第三步:

进行加法运算

0001 1100[补] + 0000 1100[补] = 0010 1000[补]

第四步:

转化成原码,正数原码相同

0001 1100[原] - 1000 1100[原] = 0010 1000[原]

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值