2025-05-23

/**
  * 這個方法是對於進制之間轉換,二進制 ,十六進制,十進制之間的相互轉換
  * @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的專欄 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *