原始下位機回傳的原始數據 byte最後轉一下 或者直接參照twoCharCompareZero 進行判斷
byte 轉 8位 byte[]
public static byte[] getBooleanArray(byte b) { byte[] array = new byte[8]; for (int i = 7; i >= 0; i--) { array[i] = (byte)(b & 1); b = (byte) (b >> 1); } return array; }
java byte轉 8byte String
public static String byteToBit(byte b) { return "" + (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1) + (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1) + (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1) + (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1); }
java判斷八位byte 某兩位是否是同一個值
/** * 原始byte 判斷某兩位是否爲 0 * @param a 原始byte數據 * @param local1 第local1位 * @param local2 第local2位 * @return */ private boolean twoCharCompareZero(byte a,int local1,int local2) {//原始 byte 未轉換成 byte[] if(((((a >> local1) & 0x1)==0) && (((a >> local2) & 0x1)== 0) )) return false; else return true; }
判斷某個 byte 是否爲 0
/** * 單個byte位對比 * 兩個位的 只要判斷一個位即可 * * @param b * @return */ private boolean charCompare(byte b) { mByteStr = "" + b; isZero = mByteStr.equals("0"); Log.w("OtherUtils", " b = " + b + " isZero = " + isZero); return isZero; }