java 原码 补码 反码

1 原码
就是该数字不进行其他操作时数字最原始的二进制表示,在Java中我们有熟悉的byte,short,int,long的整数型基本数据类型以及float,double的浮点型基本数据类型。
在Java中,对于整数而言,其原码格式为最高位为符号位,该位上1表示负数而0表示正数,剩余位数为该数字的二进制表示。在这里我们简单用int型的整数5及-5看下例子:
5的原码:00000000 00000000 00000000 00000101
-5的原码:10000000 00000000 00000000 00000101
因此,对于原码来说,绝对值相等的正数和负数只有符号位不同。
所以,简单的来说,原码就是整数在不进行操作时,以二进制形式存在显示
反码
对于正数来说,它的反码就是它的原码 ,原码等于反码:比如
5的原码:00000000 00000000 00000000 00000101
5的反码:00000000 00000000 00000000 00000101

对于负数来说,简单的理解,就是将正数的原码第一个字符0变化为1,就成了这个正数的负数原码,然后将这个负数的原码除了第一字符外,剩下的其他字符位全部变化为和原码相反的1
例如:
5的原码:00000000 00000000 00000000 00000101
-5的原码:10000000 00000000 00000000 00000101
-5的反码:11111111 11111111 11111111 11111010
补码
对于正数来说,正数的补码就是它的原码

对于负数来说,负数的补码就是在这个负数的反码基础上加1
例如:
-5的反码:11111111 11111111 11111111 11111010
-5的补码:11111111 11111111 11111111 11111011

正数原码,反码,补码之间的转化:
2的原码:00000000 00000000 00000000 00000010
2的反码:00000000 00000000 00000000 00000010 —原码等于反码
2的补码:00000000 00000000 00000000 0000001 —反码加1就是补码
负数的原码,反码,补码之间的转化
-2的原码:10000000 00000000 00000000 00000010
-2的反码:111111111 111111111 111111111 111111101
-2的补码:111111111 111111111 111111111 111111110

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值