java中的&,>>,<<位运算

目录

二进制 

>>,<<

&


二进制 

计算机内部使用二进制计数

二进制:在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的,这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示,数字电子电路中,逻辑门的实现直接应用了二进制。

>>,<<

Java语言中Int数据类型举例,int在java中表示为32位的二进制数
 
比如说,int number = 7 ;
 
在计算机中,number并不是十进制的数字7,而是以32进制数保存,如下所示:
 
number = 00000000000000000000000000000111

位运算符:

  • << 表示对二进制数向左移动
  • >> 表示对二进制数向右移动

栗子:

        for(int i=1;i<=10;i++){
            int a=i<<1;
            System.out.println(i+"\t 左移后:"+a);
        }
1	 左移后:2
2	 左移后:4
3	 左移后:6
4	 左移后:8
5	 左移后:10
6	 左移后:12
7	 左移后:14
8	 左移后:16
9	 左移后:18
10	 左移后:20

可以看到,左移一位相当于*2,同理可以推出右移一位相当于/2;

在运算时,使用位运算的效率就比直接使用取模运算效率要高,使用逻辑操作能够减少取模的时间开销。

参考文章:Java算法之入门--位运算_java 位运算_ManoCode的博客-CSDN博客

&

同理,&也是直接对二进制数进行比较,两位全为1,结果为1,否则为0

11 & 14 = 10
 
11转换为二进制为:0000 0000 0000 1011
14转换为二进制为:0000 0000 0000 1110
 
结果为:0000 0000 0000 1010 = 10
 
 
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

总结:好久没有总结了,最近在看java源码和算法,将java源码看完之后就会开新语言了,而且,我也马上就可以回家了,在学校呆了这么久,虽然说有人陪着,但还是家里面更香一点,还可以在家里尽情的发疯,不像在学校,只能在一个人面前发疯。

你可能感兴趣的:(java基础,java,python,算法)