所以,我看到了将ascii转换为二进制文件的代码:
String s = "foo";
byte[] bytes = s.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes)
{
int val = b;
for (int i = 0; i < 8; i++)
{
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
System.out.println("'" + s + "' to binary: " + binary);
在这种情况下,<<=
运营商做了什么?这段代码究竟是如何构建s
的二进制表示形式的?
答案 0 :(得分:1)
<<
是班次运营商。它将位x向左移位。 <<=
将移位运算符与赋值结合起来。所以val <<= 1
与val = val << 1
相同,它取val的位并将它们向左移动一个位置。