& | ^ ~ << >> >>>(java位运算)
2017-08-18 11:54
344 查看
说到java的位运算,相信很多人都很陌生,因为这个东西涉及到计算机的底层运算,而java呢本身又是一门高级程序设计语言,很多底层的东西都被掩盖了,但是为运算不仅运算效率高而且学习位运算对我们更好的理解计算机是如何运算和工作的是有很多帮助的。(都是对数字二进制表示的运算)
2.为什么结果会是2呢?“&”位运算的运算规律什么,接下来用一张图说明:
结论:&的位运算是将两个整数的二进制表示按位相与,0和0相与得0,1和0相与得0,1和1相与得1,最终把的到二进制数再转换成十进制数,展现给我们。
2.为什么结果会是7呢?“|”位运算的运算规律什么,接下来用一张图说明:
结论:|的位运算是将两个整数的二进制表示按位相或,0和0相或得0,1和0相或得1,1和1相或得1,最终把的到二进制数再转换成十进制数,展现给我们。
2.为什么结果会是5呢?“^”位运算的运算规律什么,接下来用一张图说明:
结论:^的位运算是将两个整数的二进制表示按位相异或,0和0相异或得0,1和0相或得1,1和1相或得0,最终把的到二进制数再转换成十进制数,展现给我们。
(这里有量个规律:1.一个数异或同一个数两次,结果还是这个数2.任何数异或本身都得0)
2.为什么结果会是-7呢?“~”位运算的运算规律什么,因为开发时这个运算符不常用,直接上结论:
结论:~的位运算是将一个整数的二进制表示按位取反,0变1,1变0,最终把的到二进制数再转换成十进制数,展现给我们。
2.为什么结果会是12呢?“《”位运算的运算规律什么,接下来用一张图说明:
结论:《的位运算是将这个整数的二进制每一位都向左移指定的位数,最终把的到二进制数再转换成十进制数,展现给我们。
(规律:左移几位就乘以2的几次幂)
结论:》的位运算是将这个整数的二进制每一位都向右移指定的位数,最终把的到二进制数再转换成十进制数,展现给我们。
(规律:右移几位就除以2的几次幂,不同上面的是:右移之后左边会有空位,最高位会有空位,所以需要补位,补位原则是负数用1补,正数用0补,其他位用0补)
1.”&”位运算符
1.首先看一个程序示例:2.为什么结果会是2呢?“&”位运算的运算规律什么,接下来用一张图说明:
结论:&的位运算是将两个整数的二进制表示按位相与,0和0相与得0,1和0相与得0,1和1相与得1,最终把的到二进制数再转换成十进制数,展现给我们。
2.”|”位运算符
1.首先看一个程序示例:2.为什么结果会是7呢?“|”位运算的运算规律什么,接下来用一张图说明:
结论:|的位运算是将两个整数的二进制表示按位相或,0和0相或得0,1和0相或得1,1和1相或得1,最终把的到二进制数再转换成十进制数,展现给我们。
3.”^”位运算符
1.首先看一个程序示例:2.为什么结果会是5呢?“^”位运算的运算规律什么,接下来用一张图说明:
结论:^的位运算是将两个整数的二进制表示按位相异或,0和0相异或得0,1和0相或得1,1和1相或得0,最终把的到二进制数再转换成十进制数,展现给我们。
(这里有量个规律:1.一个数异或同一个数两次,结果还是这个数2.任何数异或本身都得0)
4.”~”位运算符
1.简单看一个程序示例:2.为什么结果会是-7呢?“~”位运算的运算规律什么,因为开发时这个运算符不常用,直接上结论:
结论:~的位运算是将一个整数的二进制表示按位取反,0变1,1变0,最终把的到二进制数再转换成十进制数,展现给我们。
5.” 《 “位运算符,又叫左移位运算符
1.首先看一个程序示例:2.为什么结果会是12呢?“《”位运算的运算规律什么,接下来用一张图说明:
结论:《的位运算是将这个整数的二进制每一位都向左移指定的位数,最终把的到二进制数再转换成十进制数,展现给我们。
(规律:左移几位就乘以2的几次幂)
6.” 》 “位运算符,又叫右移位运算符
同理上面的“《”位运算符,直接上结论:结论:》的位运算是将这个整数的二进制每一位都向右移指定的位数,最终把的到二进制数再转换成十进制数,展现给我们。
(规律:右移几位就除以2的几次幂,不同上面的是:右移之后左边会有空位,最高位会有空位,所以需要补位,补位原则是负数用1补,正数用0补,其他位用0补)
7.” >>> “位运算符,又叫无符号右移位运算符
结论:同理上面的右移运算符,不同的一点是右移之后最高位空了以后,不管原来是正是负都拿0来补位,其他位用0补。相关文章推荐
- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>标签再使用时总是报错
- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>标签再使用时报错
- <Manning-Java-Swing> - Note.01
- <转>防止刷新/后退引起的重复提交问题的Java Token代码,非Struts
- <java>No enclosing instance of type GraphicFrame is accessible. Must qualify the allocation with an
- <<Think in Java 4 >>中关于使用XOM操作xml文件
- <<现代操作系统>>书本中的java实现生产者/消费者问题的代码改良
- <七>java数据结构与算法 栈 实现单词逆序
- Java笔记7 Java基础加强<7>代理
- <黑马程序员>枚举--(java基础加强1.5新特性)
- 黑马程序员<java基础<静态与非静态>>
- <Android+Java>创建的Android工程的结构
- java字符串转义,把<>转换成<>等字符【原】
- <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.NullPointerException
- &lt;JAVA编程术语英语翻译&gt;
- Hadoop中文件读写(Java) &lt;转&gt;
- 黑马程序员_java对泛型的限定: <? extends E > , < ? super E > 的理解和体会。
- <Android+Java>Eclipse导入包的快捷键
- <新手>使用java8的Stream,根据Object某些属性对List<Object>进行筛选。
- Java中的<< >>运算符操作细节