/**
* 这个方法是对于进制之间转换,二进制 ,十六进制,十进制之间的相互转换
* @param args
*/
//以下是二进制 转换 16进制表
//00011100081111F
//0010210019
//001131010A
//010041011B
//010151100C
//011061101D
//011171110E
public static void main(String[] args) {
//十进制的261
int x=261;//转换为十六进制:105261/16=16 于516=1010拼接上余数5=105
//105:0000 0001 0000 0101
//ff00:1111 1111 0000 0000
//result:0000 0001 0000 0000
//>>>8:0000 0001
//0x000001050x0000000001 0000 0101
//0x0000000001 0000 0000
//0x 0000 0001 将二进制码向右移动8位
//101/2 =10二进制除以2相当于将二进制码向右移动一位
int y=0xff00;// 0x这个是十六进制码的前缀ff00 转换为二进制=1111111100000000
// &二进制的按位与操作
// >>>这个符号表示向右移动指定位数(8位)
int z=(x&y)>>>8;
//x=261十六:0105二进制:0000000100000101
//y=0xff00: 十六:ff00二进制:1111111100000000
//当x&y之后相对于x与y:上下相乘得到结果:0000000100000000
//然后:(x&y)>>>8右移动8位:00000001
System.out.println("手指编号是"+z);
int w=x&0x00ff;
//x=261十六:0105二进制:0000000100000101
//y=0x00ff: 十六:ff00二进制:0000000011111111
//当x&y之后相对于x与y:上下相乘得到结果:0000000000000101JVM自动将二进制转换十进制
System.out.println("手指动作是"+w);
}
通过以上的操作,我们将多点触摸下的手指动作做了简化操作,得到了我们想要的值
摘自sharme的专栏