计算机数据存储及原码,反码,补码规则说明

计算机中数据中都是二进制形式存储

不同进制在Java代码中的表现形式

二进制:由0和1组成,代码中以0b开头

十进制:由0~9组成,代码中不加任何前缀

八进制:由0~7组成,代码中以0开头

十六进制:由0~9和a~f组成,代码中以0x开头

任意进制转十进制:

十进制转其他进制:除基取余法

不断的除以基数(转几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。

原码概念:

原码有一个弊端,如果是负数计算,结果就会出错,实际运算的结果跟我们预期的相反,例如:

10000000=0    10000000(0)+1(00000001)应该等于0+1=1;但实际等于10000001=-1计算错误,于是产生了反码。

反码概念:

反码有一个弊端,反码只能用于纯负数计算,当负数与正数进行计算大于0时结果错误,原因由于0的反码有两种形式,00000000(+0)和10000000(-0),例如:

-3(反码11111100)+4(反码00000100)=00000000=0了 正确结果应该是1,所以产生了补码,故负数计算用补码计算才能保持正确,负数的补码为反码+1 ,正数的原码,反码,补码一样 ,如下图

-3(补码11111101)+4(补码00000100)=00000001=1,计算结果正确

总结:计算机中的数据存储与计算都是以补码的形式进行的,正数的原码,反码,补码一样;负数的反码为在原码基础上,保持符号位不变,数值取反;负数的补码为反码+1。

补充:      

-127:原码(11111111) 反码(10000000)补码10000001

-128:原码无,反码无,补码10000000

由于计算机计算都是补码计算,故一个字节(8个bit位)的取值范围为(-128~127)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值