java基础------运算符总结

一. 与(&)运算: 同为1才为1

5 二进制 101
3 二进制 011
    结果 001

二. 或(|)运算:有一个为1,则为1

5 二进制 101
3 二进制 011
    结果 111

三.异或(^)运算:不相同则为1

5 二进制 101
3 二进制 011
    结果 110

四. 左移(<<)运算 : 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

3 << 2为例:

 //3的2进制数
 0000 0000 0000 0000 0000 0000 0000 0011

 //3<<2 把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零
 0000 0000 0000 0000 0000 0000 0000 1100

首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.

    数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。所以3 << 2 ,其实相当于 3* 2^2 = 12

五. 右移(>>)运算 : 按二进制形式把所有的数字向右移动对应移动位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1

以11 >> 2为例 : 

 //11的32位二进制形式
 0000 0000 0000 0000 0000 0000 0000 1011

 //11 >> 2,把低位的最后两个数字移出,因为该数字是正数,所以在高位补零
 0000 0000 0000 0000 0000 0000 0000 0010

   计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是2.

  数学意义:右移一位相当于除2,右移n位相当于除以2的n次方,正数舍,负数进  , 11>>2相当于 : 11 /2^2 = 11/4 = 2

补充: 负数的右移 -31>>3

1111 1111 1111 1111 1111 1111 1110 0001(-31)右移3位 ,把低位的最后三个数字移出(变成1110 0),因为该数字是负数,所以在高位补1(补三个1),

 结果是111 1111 1111 1111 1111 1111 1111 1110 0(-4)。

对于负数的三十二位(int)二进制补充说明 : 二进制数分为有符号数和无符号数,有符号数里面才有正负之分。其中第一位为符号位,1代表负数,0代表正数。例如 4就是0000 0000 0000 0000 0000 0000 0000 0100,-4就是1111 1111 1111 1111 1111 1111 1111 1100 (从左边最后一个1开始算)

六 . 无符号右移(>>>)运算 : 按二进制形式把所有的数字向右移动对应移动位数,低位移出(舍弃),高位的空位补零,对于正数来说和带符号右移相同,对于负数来说不同。

如:15>>>2的结果是3,-31>>>3的结果是536870908,移出的部分将被抛弃:

     同样转为二进制的形式,00000000 00000000 00000000 00001111(15)右移2位的结果是00000000 00000000 00000000 00000011(3),

 1111 1111 1111 1111 1111 1111 1110 0001(-31的32位2进制数)右移3位的结果是000 1111 1111 1111 1111 1111 1111 1110 0(536870908)。
 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值