博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
位运算符总结
阅读量:6442 次
发布时间:2019-06-23

本文共 905 字,大约阅读时间需要 3 分钟。

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/55273954

and运算 &

与运算: 相同位置的两个数都为1则为1,若有一个不为1,则为0.

00101 & 11100

–00100

int data = 100;        System.out.println("data-->" +Integer.toBinaryString(data));        System.out.println("64-->"+Integer.toBinaryString(64));        int s =  data & 0x40;        System.out.println("& result-->"+Integer.toBinaryString(s));

结果是:

data–>1100100
64–>1000000
& result–>1000000

or运算 |

或运算: 相同位置有一个或多个1则为1,若都为0则为0

00101 | 11100

11101

xor运算 ^

异或运算: 相同位置上的值不相同则为1,相同则为0

00101 ^ 11100

11001

not运算 ~

取反运算: 把内存中的0和1全部取反

无符号:得到的值就是它与类型上界的差
实例
data—>1100100
64—->1000000
~data—->11111111111111111111111110011011
~data的十进制—–>-101

shl运算 <<

左移运算: a shl b 表示把a转换为二进制后左移b位(在后面添b个0)

例如 100的二进制表示为1100100,而110010000表示400,所以100 shl 2=400
所以 a shl b 实际上是a乘以2的b次方

shr运算 >>

右移运算: a shr b 表示a的二进制右移b位(去掉末尾b位),相当于a除以2的b次方(取整)

用shl 或 shr 要比直接用乘除运算块的多,因为后者是更接近底层的操作。

你可能感兴趣的文章
别再写getter,setter方法了,用Lombok来简化你的代码吧
查看>>
依赖注入
查看>>
Anconda 3.7安装以及使用详细教程
查看>>
scala 学习笔记二 方法与函数
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
如何用公式编辑器编辑直角三角形符号
查看>>
每日一个Linux命令 地址
查看>>
UI---设置Activity背景为透明
查看>>
晒晒名企大公司的工资收入
查看>>
【DOM编程艺术】显示"文献来源链接表"
查看>>
关于css
查看>>
HTML5 web workers
查看>>
unity3D小小白之刚体(rigidbody)碰撞体(colliders)的简单使用方法
查看>>
为什么需要虚析构函数
查看>>
问题-应用程序加载图标不可用
查看>>
Objective-C 中nil/Nil/NULL/NSNull
查看>>
细聊分布式ID生成方法
查看>>
脸上有酒窝,脖子后有痣,胸前有颗痣,此三种人不能错过
查看>>
用VC++开发Oracle数据库应用程序详解2
查看>>
bzoj1305
查看>>