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 条评论
登录 后参与评论

相关文章

来自专栏web编程技术分享

【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第三节)

【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第三节) - Java520官方.png

25520
来自专栏用户画像

剑指offer 把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字...

8630
来自专栏Java架构

十年Java架构师大厂实战(年薪80W)

BAT一直是程序员心神向往的地方,那些最最前沿的一线互联网技术都出自这些合称为大厂的地方,那里人才济济,哪怕实战经验不好的程序员进了那里,都会受到技术的熏陶,培...

21120
来自专栏黑白安全

利用TurniBit开发板DIY一套自动窗帘模拟系统

步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于...

13230
来自专栏Android知识点总结

RecyclerView零点突破(基本使用篇)

18460
来自专栏吴伟祥

一分钟上手Rinetd——端口转发工具 原

iptables 的功能当然强大,但理解与设置却有点抽象,便通过google认识了rinetd。

15320
来自专栏用户画像

剑指offer 翻转单词顺序列

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它...

10130
来自专栏赵俊的Java专栏

LeetCode 26 Remove Duplicates from Sorted Array

11030
来自专栏一枝花算不算浪漫

GuavaCache学习笔记二:Java四大引用类型回顾

上一篇已经讲了,如何自己实现一个LRU算法。但是那种只是最基本的实现了LRU的剔除策略,并不能在生产中去使用。因为Guava Cache中使用的是SoftRef...

12830
来自专栏程序员的知识天地

为什么程序员要用两个大屏幕?是为了炫耀吗?

28930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励