原码、反码、补码相互之间的关系

本文详细介绍了计算机中表示正负数的原码、反码和补码概念。原码直接表示数值,但无法直接处理加减运算;反码解决了运算问题,但仍有正负零的区分;补码不仅简化了运算,还消除了正负零的差异。在32位机器上,如int(3)的原码、反码和补码通过举例进行了清晰的解析。
摘要由CSDN通过智能技术生成

原码、反码、补码知识整理
在计算机中机器是识别不了正数(+)、负数(-)的,所以早期给计算机设定了0代表正数,-1代表负数,称为符号位,置于最前面
1.原码
正数转换为二进制位,二进制位就是这个正数的原码
负数取绝对值转换为二进制位,二进制位在最高位补1就是这个负数的原码
eg:int(3)的原码为多少?
解析
3转换为二进制位为:11B,在32位机器上占4个字节,补零
正数:00000000 00000000 00000000 00000011
-3取绝对值后转换为二进制位为:11B,在32位机器上占4个字节,在最高位补1
负数:10000000 00000000 00000000 00000011
缺点:零分为+0和-0,当我们在进行不同符号的加法运算或者同符号的减法运算时,不能直接进行加减运算,不能直接给出结果的正负,需要先取绝对值后再进行加减操作,符号位由绝对值大的决定,所以反码就问世了,反码算是原码的一种改进
2.反码
正数的反码跟原码相同,这里不作过多介绍,我们重点来了解一下负数的反码
负数的反码为在原码的基础上,除符号位外所有位取反,即1变0,0变1
eg:int(3)的原码为多少?
解析
3转换为二进制位为:11B,在32位机器上占4个字节,补零
正数:00000000 00000000 00000000 00000011
-3取绝对值后

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值