Java 位运算实例
所属分类 java
浏览量 975
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 传递要点