Java 位运算实例     所属分类 java 浏览量 925
```byte 转 bit

public static String byteToBit(byte b) {
StringBuilder sb = new StringBuilder(8);
sb.append((byte) ((b >> 7) & 0x1));
sb.append((byte) ((b >> 6) & 0x1));
sb.append((byte) ((b >> 5) & 0x1));
sb.append((byte) ((b >> 4) & 0x1));
sb.append((byte) ((b >> 3) & 0x1));
sb.append((byte) ((b >> 2) & 0x1));
sb.append((byte) ((b >> 1) & 0x1));
sb.append((byte) ((b >> 0) & 0x1));
return sb.toString();
}

public static String bytesToBit(byte[] bytes) {
if(bytes==null || bytes.length < =0) {
return null;
}
StringBuilder sb = new StringBuilder(9*bytes.length);
for(byte b:bytes) {
sb.append(byteToBit(b)).append(" ");
}
return sb.toString();
}

b >> 1 右移一位，相当于除2
b & 0x1  位与  取最低位

System.out.println(bytesToBit("你好".getBytes(StandardCharsets.UTF_8)));

byte min = Byte.MIN_VALUE;
byte max = Byte.MAX_VALUE;
// -128 127
System.out.println(min +" "+max);

for(byte i=min;i < max;i++) {
System.out.println(byteToBit(i)+" "+i);
}
System.out.println(byteToBit(max)+" "+max);

11100100 10111101 10100000 11100101 10100101 10111101
-128 127
10000000 -128
10000001 -127
...
11111110 -2
11111111 -1
00000000 0
00000001 1
00000010 2
...
01111101 125
01111110 126
01111111 127

https://gitee.com/dyyx/iview/blob/master/src/test/java/dyyx/ByteTest.java

java位运算
```

shiro实例

K8S简介

dubbo 分布式追踪 traceId 传递要点