10.原码、反码、补码

原反补比较通俗易懂的讲解http://t.csdn.cn/gYGJw

二进制的三种状态:

原码、反码、补码

首先介绍一下由来,由于二进制无法表示负数,所以原码出现了,

原码:首位为符号位,1为负数,0为正数------------------解决了二进制没有负数的问题

其次原码无法解决正负数相加的问题,所以出现了反码,

反码:正数原反补相同,负数除了符号位全部取反--------------解决了二进制正负数相加问题

最后反码无法解决0有两个码,另外将-128纳入(最终是让1000 0000表示-128),

原码:+0:0000 0000 ,-0:1000 0000

反码:+0:0000 0000 ,-0:1111 1111

上面原码和反码运用到,0代表正数,正数原反补都是一样的,1代表负数,符号位不变,其余全部取反

由于以上问题,所以出现了补码,

补码:反码+1,记住是这个是二进制,逢二进一,若进制到符号位也会被进制

byte的取值范围为:-128~127

此处解释一下,为什么用8位数 0000 0000或1111 1111来计算,因为计算机的最小存储单元为字节(byte),一个字节(byte)由8个比特(bit)组成,每一个比特都是二进制位,0和1表示。

比特也是最小的信息单元,注意不是最小存储单元,计算机的存储方式是以byte存储

在java idea里都是以十进制展示的,要先转成  原码  再转成   反码  再转成  补码,补码才是计算机底层二进制的计算方式,另外注意一下整数的原反补都是一样的,且只有二进制的原码才能用8421码快速转,所以

原码:看数据

反码:转数据

补码:运算数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值