首页 / JAVA / Java 位运算符 深入理解
Java 位运算符 深入理解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 位运算符 深入理解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1473字,纯文字阅读大概需要3分钟。
内容图文
在Java中存在着这样一类操作符,是针对二进制进行操作的,它们分别是&、|、^、~、>>、<<、>>>几个位操作符,无论是初始值是按照何种进制,都会换算成二进制进行位
操作。接下来对这几种操作符进行一下简单的讲解。
&:
作用是对运算符两侧以二进制表达的操作符按位分别进行‘与‘运算,而这一运算是以数中相同的位(bit)为单位的。操作的规则是:仅当两个操作数都为1时,输出结果才为1,否
则为0,示例如下:
12 的二进制为 1100
5 的二进制为 0101
则 12 & 5 的二进制为 0100,则完整的运算式为 12 & 5 = 4;
|:
作用是对运算符两侧以二进制表达的操作符按位分别进行‘或‘运算,而这一运算是以数中相同的位(bit)为单位的。操作的规则是:仅当两个操作数都为0时,输出的结果才为0,
否则为1,示例如下:
12 的二进制为 1100
5 的二进制为 0101
则 12 | 5 的二进制为 1101,则完整的运算式为 12 & 5 = 13;
^:
作用是对运算符两侧以二进制表达的操作数按位分别进行‘异或‘运算,而这一运算是以数中相同的位(bit)为单位的。异或运算操作的规则是:仅当两个操作数不同时,相应的
输 出结果才为1,否则为0,示例如下:
12 的二进制为 1100
5 的二进制为 0101
则 12 | 5 的二进制为 1001,则完整的运算式为 12 & 5 = 9;
~:
‘取反‘运算符~的作用是将各位数字取反:所有的0置为1,1置为0,示例如下:
12 的二进制为 1100
进行取反操作为 10000000 00000000 00000000 00001101
则完整的运算式为 ~12 = -13
<<:
左移就是把一个数的所有位数都向左移动若干位,示例如下:
12 的二进制为 1100
则 12 << 1 的二进制为 11000, 则完整的运算式为 12 << 1 = 24;
>>:
右移就是把一个数的所有位数都向右移动若干位,示例如下:
12 的二进制为 1100
则 12 >> 1 的二进制为 0110, 则完整的运算式为 12 >> 1 = 6;
>>>:
无符号右移一位,不足的补0, 示例如下:
12 的二进制为 1100
则 12 >>>1 的二进制为 0110, 则完整的运算式为 12 >> 1 = 6;
题外话:位运算是一种基于二进制的运算,涉及到知识包括原码、反码、补码,在此做一个小小的说明,
对于原码,就是当前数字的二进制表现形式,如-1的原码是1000 0001;
对于反码,正数的反码就是本身,负数的反码是二进制保留符号位,剩余位取反,例如-1的反码是1111 1110;
对于补码,正数的反码、补码、原码都是一样的,负数的补码是在其反码的基础上+1,例如-1的补码是1111 1111;
在JDK的原码中,有许多初始值都是通过位运算计算的,位运算有许多特性,可以在线性增长的数据中起到作用,且对于一些运算,位运算是最直接、最简便的方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/securitit/article/details/46991393
内容总结
以上是互联网集市为您收集整理的Java 位运算符 深入理解全部内容,希望文章能够帮你解决Java 位运算符 深入理解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。