转载——大牛青春起点...Java第二课学习..
2015-01-02 17:14
190 查看
位运算符:
(1)>> (a >>b)相当于a / (2的b次幂)注意取整,右移后,原来高位是什么,就用什么来补充空下的高位
(2)<< (a << b) 相当于 a * (2的b次幂):
(3)>>> 3>>>1 = 1 ;-> 3/2 = 1 ;与>>不同的是,右移后,不管原来高位是什么,都用0来补充空下的高位,PS:无<<<
PS:移位运算符,默认是模32的运算,除非左边的操作数是long,那么这种情况下是模34位运算,所以1<<35 的答案 和1<<3|8 的结果是一
样的,都是8;
(4)&:与运算:(6 & 3) = 2
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
&011
-----
010(同真则真原则)
2的二进制就是 010 ,所以(6 & 3) = 2;
(5)| :或运算 (6 | 3) = 7
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
|011
-----
111 (有真则真原则)
7 的二进制就是 0000—0000 0000—0000 0000—0000 0000—0111
(6)^ 异或运算:(6 ^ 3) = 5 (6 ^ 3 ^ 3 ) = 6(PS:一个数异或同一个数两次,结果是数本身)
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
^011 (不同则真)
-----
101
5的二进制 0000—0000 0000—0000 0000—0000 0000—0101
故,^ 可运用于加密,如很多二进制数 ^ 3(未知数) 后二进制数值,发生变化,如果想得到原来的二进制数(解密),再 ^ 3,即可。
但是真正的加密,是经过复杂算法的。
(7)~ (反码): 01001 ~ 后 10110,即1变0 , 0变1
(~6) = -7
-6 = -7 + 1;
(~8) = -9:-8 = -9 + 1;
(~16) = -17:-16 = -17 + 1;
(~a)先把a变为-a,-a - 1 = (~a);
题目:用高效的方法算出 2*8=?
2的二进制 0010
8的二进制 1000
0010
*1000
-----
0000
0000
0000
0010
-----------
0010000
16的二进制就是 10000,所以效率慢,2*8 -> 2<<3
|000000000000000000000000000000000010| 左移 -> 000|000000000000000000000000000000010 |
用0补低位 -> |000000000000000000000000000000010000|
逻辑运算符:
&
特点:同真则真,其余为假,a&b ,a和b都参与运算
|
特点:有真则真,其余为假,a|b ,a和b都参与运算
^:异或:不同则真,其余为假,假设a = 3;( 2<a ^ a<5) 结果:false; a = 3 (a<2 ^ a<1)true
&& (短路):和&运算结果是一样,只是运算过程不一样,从左往右判断,有一个为假,剩下的不再参与运算
|| (短路) 和|运算结果是一样,只是运算过程不一样,从左往右判断,有一个为true,剩下的不再参与运算,结果必为true
! !true 则false ,!false则true,!!true 则true
三元运算符?:
(表达式1)?(表达式2):(表达式3)
(表达式1为true)执行表达式2,否则执行表达式3
(1)>> (a >>b)相当于a / (2的b次幂)注意取整,右移后,原来高位是什么,就用什么来补充空下的高位
(2)<< (a << b) 相当于 a * (2的b次幂):
(3)>>> 3>>>1 = 1 ;-> 3/2 = 1 ;与>>不同的是,右移后,不管原来高位是什么,都用0来补充空下的高位,PS:无<<<
PS:移位运算符,默认是模32的运算,除非左边的操作数是long,那么这种情况下是模34位运算,所以1<<35 的答案 和1<<3|8 的结果是一
样的,都是8;
(4)&:与运算:(6 & 3) = 2
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
&011
-----
010(同真则真原则)
2的二进制就是 010 ,所以(6 & 3) = 2;
(5)| :或运算 (6 | 3) = 7
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
|011
-----
111 (有真则真原则)
7 的二进制就是 0000—0000 0000—0000 0000—0000 0000—0111
(6)^ 异或运算:(6 ^ 3) = 5 (6 ^ 3 ^ 3 ) = 6(PS:一个数异或同一个数两次,结果是数本身)
6的二进制 110 ,实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0110
3的二进制 011, 实际上在内存中的存储是 0000—0000 0000—0000 0000—0000 0000—0011
简写:
110
^011 (不同则真)
-----
101
5的二进制 0000—0000 0000—0000 0000—0000 0000—0101
故,^ 可运用于加密,如很多二进制数 ^ 3(未知数) 后二进制数值,发生变化,如果想得到原来的二进制数(解密),再 ^ 3,即可。
但是真正的加密,是经过复杂算法的。
(7)~ (反码): 01001 ~ 后 10110,即1变0 , 0变1
(~6) = -7
-6 = -7 + 1;
(~8) = -9:-8 = -9 + 1;
(~16) = -17:-16 = -17 + 1;
(~a)先把a变为-a,-a - 1 = (~a);
题目:用高效的方法算出 2*8=?
2的二进制 0010
8的二进制 1000
0010
*1000
-----
0000
0000
0000
0010
-----------
0010000
16的二进制就是 10000,所以效率慢,2*8 -> 2<<3
|000000000000000000000000000000000010| 左移 -> 000|000000000000000000000000000000010 |
用0补低位 -> |000000000000000000000000000000010000|
逻辑运算符:
&
特点:同真则真,其余为假,a&b ,a和b都参与运算
|
特点:有真则真,其余为假,a|b ,a和b都参与运算
^:异或:不同则真,其余为假,假设a = 3;( 2<a ^ a<5) 结果:false; a = 3 (a<2 ^ a<1)true
&& (短路):和&运算结果是一样,只是运算过程不一样,从左往右判断,有一个为假,剩下的不再参与运算
|| (短路) 和|运算结果是一样,只是运算过程不一样,从左往右判断,有一个为true,剩下的不再参与运算,结果必为true
! !true 则false ,!false则true,!!true 则true
三元运算符?:
(表达式1)?(表达式2):(表达式3)
(表达式1为true)执行表达式2,否则执行表达式3
相关文章推荐
- 转载的哦。一位资深程序员大牛给予Java初学者的学习建议
- 欲为Java技术大牛所需的25个学习要点(转载)
- 转载——大牛青春起点...
- Java学习之路:不走弯路,就是捷径(转载)
- 对于初学者学习Java语言的建议(转载)
- 转载一篇别人的学习Java之路
- [转载]Java集合类详细学习
- 小议学习Java的浮躁心态 转载http://www.zzju.net/news/30839.html
- java新手任何学习java(转载)
- 转载-学习JAVA(续2)
- 转载:Java语言学习
- Java Sound API 学习笔记[转载]
- 通过高级机器人战斗仿真引擎学习 Java 编程比以往更有趣 (Skyala.Li 转载自IBM)
- 【转载】Java学习从入门到精通
- 【转载】Java学习过程应该深入理解的一些重点
- Java学习之路:不走弯路,就是捷径【转载】
- 对于初学者学习Java语言的建议(转载)
- Java学习路径(三)过程篇(转载)
- 学习java的30个目标 (转载)
- JAVA学习 准备篇 (转载)