java基础四 原码,反码,补码

------在Java里面,有些数据是用有符号数据表示法表示的,主要有原码,反码,补码,学习这个的目的是为了以后学习强制类型转换做准备的

------原码

就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

通过一个字节(8个二进制位)表示+7和-7

+7的原码表示为00000111

-7的原码表示为10000111

注意:这样计算+7和-7的加法运算是不等于0的,计算机里面的计算一般按照补码进行运算

------反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

+7的反码表示为00000111

-7的反码表示为11111000

------补码
正数的补码与其原码相同;负数的补码是在其反码的末位 加1。 

+7的补码表示为00000111

-7的补码表示为11111001

注意此时的+7与-7相加就是0了,00000111加上11111001的结果为100000000,但是一个数只有8字节,所以就把超出符号位的那个1去掉


最后上两个练习

1.已知原码0b10110101求补码

这里的原码是0b10110101,符号位是1,所以就是先求他的反码(将原码取反),求得反码是11001010,再在反码末位加一,求得补码是11001011

2.已知补码(0b11101110)求原码

这里已知补码求原码,其实就是已知原码求补码的逆向过程

首先将补码-1,得到反码11101101,再取反得到原码10010010

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值