二进制的简单运算了解
- 二进制,位运算 &(和,and) |(或,or) ~(取反)
A=0000 1100
B=0011 1101
(A和B) A&B=0000 1100 //相对应 位 如果都为1才是1,有一个为0就是0
(A或B) A|B=0011 1101 //相对应 位 如果都为0才是0,有一个为1就是1
(非A即B) A^B=0011 0001 //相对应 位 如果相同都为1、0才是0,有一个为1就是1
(取反) ~B=1111 0010 //对应 位 如果为1就是0,如果为0就是1
-
二进制的 左移<< 右移>>
-
2*8=16 2.2.2.2
<<左移 *2 >>右移 /2
00000000 0
00000001 1
00000010 2
00000011 3
00000100 4
00001000 8
00010000 16
System.out.println(2<<3);//2左移三位
// 0000 0010 2
// 0001 0000 16
System.out.println(16>>3);//16右移三位
System.out.println("--------");
System.out.println(64>>3);
// 0000 1000 64
// 0100 0000 8
System.out.println(8>>2);
// 0000 1000 8
// 0000 0010 2