原始下位机回传的原始数据 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; }