Java中`<< =`的目的是什么?

时间:2014-05-11 22:55:55

标签: java string bitwise-operators

所以,我看到了将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的二进制表示形式的?

1 个答案:

答案 0 :(得分:1)

<<是班次运营商。它将位x向左移位。 <<=将移位运算符与赋值结合起来。所以val <<= 1val = val << 1相同,它取val的位并将它们向左移动一个位置。