-3
所以,我看到这个代码ASCII转换成二进制:Java中`<< ='的用途是什么?
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
的二进制表示?
阅读[按位和移位运算符](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)。 – nhaarman
和二进制是什么?什么“二元表示”是?请注意,你'.getBytes()'没有指定编码;如果我'.getBytes(StandardCharsets.UTF_16)'我会得到不同的结果,如果我'.getBytes(StandardCharsets.US_ASCII)'。 – fge
你的参考书说它有什么作用? –