计算机中的二进制

   计算机中存储的都是二进制,最高位表示符号位,0为正数,1为负数。在计算机中其实没有原码反码,存储的二进制全都是补码。而存储为补码的原因就是为了简便计算(可以把减法变为加法来计算)。原码和反码是我们在求补码时的抽象。
   正数的原码,反码,补码都是原码本身,三者的结果是一样的;
   负数的反码是在原码的基础上,符号位不变,其余的按位取反;补码是反码+1。
   所以我们使用java输出一个负数的二进制时,其实是这个数的补码,不是原码。比如-10:
   -10的原码是:1000 0000 0000 0000 0000 0000 0000 1010
   使用java将-10转为二进制打出来其实是-10的补码:
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190225141618529.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ3NjA1Mw==,size_16,color_FFFFFF,t_70)
   关于左移<<,右移>>,无符号右移>>>运算符:
   左移:将一个整数转换成二进制,将二进制的每一位各左移动。规律:假设移动n位,变量是x,公式:x<<n=x*2^n;
   右移:>>(有符号),当数值为负数时,在右移时的第一位符号位不参与移动。
   规律:假设移动n位,变量是x。
   				如果是正数,公式:x>>n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值