专栏首页IT云清java常见运算符

java常见运算符

java中常见的运算符。 其中 a|=b:意思就是把a和b按位或然后赋值给a, 按位或的意思就是先把a和b都换成2进制,然后用或操作。

&:当两边操作数的位同一时候为1时,结果为1,否则为0。如1100&1010=1000    | :当两边操作数的位有一边为1时,结果为1。否则为0。如1100|1010=1110    ~:0变1,1变0    异或:两边的位不同一的时候,结果为1。否则为0.如1100^1010=0110

<< :左移,3<<3 = 3 * 2^3 = 3*8 = 24

System.out.println(Integer.toBinaryString(3<<2)+"----"+(3<<2));
System.out.println(Integer.toBinaryString(16)+":16右移----"+Integer.toBinaryString(16>>2)+"----"+(16>>2));
System.out.println(Integer.toBinaryString(16)+":16无符号右移----"+Integer.toBinaryString(16>>>2)+"----"+(16>>>2));
System.out.println(Integer.toBinaryString(16)+":16左移----"+Integer.toBinaryString(16<<2)+"----"+(16<<2));

1100----12
10000:16右移----100----4
10000:16无符号右移----100----4
10000:16左移----1000000----64
功能              ¦          演示样例            ¦    位运算 

----------------------±--------------------------±------------------- 去掉最后一位 ¦ (101101->10110) ¦ x >> 1 在最后加一个0 ¦ (101101->1011010) ¦ x < < 1 在最后加一个1 ¦ (101101->1011011) ¦ x < < 1+1 把最后一位变成1 ¦ (101100->101101) ¦ x ¦ 1 把最后一位变成0 ¦ (101101->101100) ¦ x ¦ 1-1 最后一位取反 ¦ (101101->101100) ¦ x ^ 1 把右数第k位变成1 ¦ (101001->101101,k=3) ¦ x ¦ (1 < < (k-1)) 把右数第k位变成0 ¦ (101101->101001,k=3) ¦ x & ~ (1 < < (k-1)) 右数第k位取反 ¦ (101001->101101,k=3) ¦ x ^ (1 < < (k-1)) 取末三位 ¦ (1101101->101) ¦ x & 7 取末k位 ¦ (1101101->1101,k=5) ¦ x & ((1 < < k)-1) 取右数第k位 ¦ (1101101->1,k=4) ¦ x >> (k-1) & 1

把末k位变成1 ¦ (101001->101111,k=4) ¦ x ¦ (1 < < k-1) 末k位取反 ¦ (101001->100110,k=4) ¦ x ^ (1 < < k-1) 把右边连续的1变成0 ¦ (100101111->100100000) ¦ x & (x+1) 把右起第一个0变成1 ¦ (100101111->100111111) ¦ x ¦ (x+1) 把右边连续的0变成1 ¦ (11011000->11011111) ¦ x ¦ (x-1) 取右边连续的1 ¦ (100101111->1111) ¦ (x ^ (x+1)) >> 1 去掉右起第一个1的左边 ¦ (100101000->1000) ¦ x & (x ^ (x-1)) 推断奇数 (x&1)==1 推断偶数 (x&1)==0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java switch case 用法详解

    IT云清
  • Redission分布式锁加锁原理源码解析

    这里是我们自己实现,调用redission的方法,获取锁,然后加锁。lock.lock(expireTime, timeUnit)是关键,我们追进去。

    IT云清
  • SQL---计算两个日期之间的时间差

    在进行日期处理的时候,有时会需要计算一下两个日期之间相差几年零几个月,这里记录一下,如何用mysql数据库和java结合,准确的拿到两个日期之间的时间差。

    IT云清
  • 一些你所不知道的VS Code插件

    作为一名业余爱好者、专业人员,甚至是每月只有一次编程的开发人员,你必须知道,对于任何愿意在工作中投入最大生产时间的人来说,拥有智能和敏捷的工具是至关重要的,废话...

    Fundebug
  • 世界会走向哪里?(一)

    我很早之前就看过阮一峰的博客,那个是时候大概是在大一,就是觉得阮一峰老师的博客写的很有思想,特别是网络日志中的文集,总觉得看着能引发自己的思考。

    compassblog
  • Java:手写线程安全LRU缓存X探究影响命中率的因素

    最近遇到一个需求,需要频繁访问数据库,但是访问的内容只是 id + 名称 这样的简单键值对。

    执生
  • C++随笔(五)三种实现串口通信的方式

    要说最好用的是select的形式,防止漏掉发送过来的数据,缺点是需要单开一条线程独立出来串口服务用来接收数据 一般比较大的工程里还是结合着libevent来用...

    Pulsar-V
  • 【DIY数字仪表】使用TouchGFX的MVP架构来实现GUI和硬件的双向交互(2)

    MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与M...

    AIoT-KK
  • 小米智能音箱肩负重要使命,人们要如何面对时刻“监听”你谈话的机器

    自从亚马逊在2014年推出智能音箱Echo之后,苹果、谷歌、京东、阿里这些巨头都纷纷做起了智能音箱,当全世界最有钱最具前瞻眼光的公司都在做同一件事时,此事必有蹊...

    数据猿
  • pytorch初体验

    一部分的内容在2017年1月18日Facebook发行的PyTorch相比TensorFlow、MXNet有何优势? - 罗若天的回答 - 知乎 已有。

    用户1908973

扫码关注云+社区

领取腾讯云代金券