对于每个字节:
- 强制转换为
int
(通过自动扩展byte
到,在下一步中发生int
) - 带掩码255的按位与运算,除了最后8位,其余全部为零
- 与256进行位或运算,将第9位设置为1,使所有值正好为9位长
- 调用
Integer.toBinaryString()
以生成9位字符串 - 调用
String#substring(1)
以“删除”前导“ 1”,恰好保留8个二进制字符(带有前导零,如果有的话,保持不变)
作为代码是:
byte[] bytes = "377317tabc".getBytes();for (byte b : bytes) { System.out.println(Integer.toBinaryString(b & 255 | 256).substring(1));}
上面代码的输出(总是8位宽):
11111111000000001100111100001001011000010110001001100011
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)