1
10
在Java中,有符号字节和无符号字节之间没有区别。以下两项将为一个字节分配相同的值:
作为一名开发人员,您可以在打印它们时将其视为已签名或未签名。默认情况是打印有符号的,但您可以通过以无符号的方式将它们转换为整数来强制打印无符号的。
如果你想知道字节如何同时表示负数和正数,请阅读 twoâs complement arithmetic in Java |
2
2
发送-96是正确的行为。有符号字节和无符号字节在打印出来时是不同的,但在比特表示中不同,当它们被另一个服务器接收时,它们不应该有区别。 |
3
2
没有System.out.println(字节)。最接近的是System.out.print(int)。这意味着字节值被转换为int。转换扩展了高位,从而产生一个负数。 以下代码将演示我的观点:
如果要使用System.out.println查看字节值,请屏蔽整数值的前三个字节,如下所示:
|
4
1
字节本身没有签名或未签名。当应用某些操作(例如,与0进行比较以确定符号)时,它们会被解释为这样。操作可以是有符号的和无符号的,在Java中,只有有符号的字节操作可用。所以你引用的代码对这个问题毫无用处——它发送字节,但不做任何操作。更好地显示接收字节的代码。一个正确而方便的方法是使用
|
Community wiki · 如何确定变量是有符号还是无符号? 1 年前 |
OregonTrail · 安全地将int转换为C中的字符串 10 年前 |
Lautaro · SSE比较压缩的无符号字节 11 年前 |
Zapnologica · Java和无符号字节[重复] 11 年前 |