// 十进制26 转换为二进制32位:00000000 00000000 00000000 00011010
int testInt = 26;
byte sharyoJyotai = (byte) testInt;
int truckStatus = TruckStatus(sharyoJyotai);
/**
* 从左到右取得bit的值
*/
public static int TruckStatus(byte truckStatus) {
int int1 = (truckStatus & 0x80) == 0 ? 0 : 1; // 十六进制0x80 → 二进制10000000
int int2 = (truckStatus & 0x40) == 0 ? 0 : 1; // 十六进制0x40 → 二进制1000000
int int3 = (truckStatus & 0x20) == 0 ? 0 : 1; // 十六进制0x20 → 二进制100000
int int4 = (truckStatus & 0x10) == 0 ? 0 : 1; // 十六进制0x10 → 二进制10000
int int5 = (truckStatus & 0x08) == 0 ? 0 : 1; // 十六进制0x08 → 二进制1000
int int6 = (truckStatus & 0x04) == 0 ? 0 : 1; // 十六进制0x04 → 二进制100
int int7 = (truckStatus & 0x02) == 0 ? 0 : 1; // 十六进制0x02 → 二进制10
int int8 = (truckStatus & 0x01) == 0 ? 0 : 1; // 十六进制0x01 → 二进制1
System.out.print(int1);
System.out.print(int2);
System.out.print(int3);
System.out.print(int4);
System.out.print(int5);
System.out.print(int6);
System.out.print(int7);
System.out.println(int8);
// 输出值为:00011010
return int1;
}
从byte中取得各个bit的值
最新推荐文章于 2022-05-16 16:34:00 发布