JAVA中,2进制的负数表达形式

 

 

 

结果为:

5=101

-5=11111111111111111111111111111011

 

101之所以前面没有东西,因为前面都是0,所以隐蔽掉了

                           

原因:

在计算机中都是用负数的绝对值—>取反—>+1(补码),作为这个-5在计算机中的表示!

 

比如说:

              -5的绝对值-->5

              5二进制—>00000000000000000000000000000101

              取反—>11111111111111111111111111111010

      最后加上1

              11111111111111111111111111111010

            + 00000000000000000000000000000001   1

            = 11111111111111111111111111111011  (表示-5

 

补充:

 

正数的原码,补码,反码都是相同的

 

在计算机中,你比如说看到某个2进制首位是0.则表示是正数。。1表示为负数

 

比如说我们知道在javabyte类型表示的是8

-->0000000011111111

 

我们可以把它拆成:

100000000-011111111   210000000-11111111

 

首先我们看第一个:

    00000000-011111111 由于首位是0,因此计算机知道这个是正数

    所以转换成十进制是:0-127

再看第二个:

    10000000-11111111  由于首位是1,所以我们知道这个是负数(用补码来表示)

    首先看10000000,我们先取反:

100000002)-->01111111

    然后再加上1:

     01111111+01111111=10000001

    其次装换成10进制:

     1000001(2)-->128(10)

    最后转换成为负数:

     所以结果为-128

    因此Byte是由-128-->127

 

二进制加法:                                            

   1+0=1 1+1=10 ; 1+10=11 ;10+10=100 ; 1+11=100 ; 10+11=101;

二进制减法:                               

   000 ; 101 ;01=1 ;110;1011

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值