/**
* 這個方法是對於進制之間轉換,二進制 ,十六進制,十進制之間的相互轉換
* @param args
*/
//以下是二進制 轉換 16進制表
//0001 1 1000 8 1111 F
//0010 2 1001 9
//0011 3 1010 A
//0100 4 1011 B
//0101 5 1100 C
//0110 6 1101 D
//0111 7 1110 E
public static void main(String[] args) {
//十進制的261
int x=261;//轉換為十六進制:105 261/16=16 於5 16=10 10拼接上餘數5=105
//105: 0000 0001 0000 0101
//ff00 :1111 1111 0000 0000
//result: 0000 0001 0000 0000
//>>>8: 0000 0001
//0x00000105 0x000000 0001 0000 0101
// 0x000000 0001 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:上下相乘得到結果:0000000000000101 JVM自動將二進制轉換十進制
System.out.println("手指動作是"+w);
}
通過以上的操作,我們將多點觸摸下的手指動作做瞭簡化操作,得到瞭我們想要的值
摘自 sharme的專欄