[英]Sign(+/-) error in byte in Java byte setting operations
我正在清除 Java
public byte[] orbits = new byte[38];
现在如果我在做
orbits[24] = (byte)0xFF;
轨道[24] 应该填充 11111111 即 FF(十六进制),而是填充 -1。
C++ 中的此操作完美运行
char orbits[38]
orbits[24] = (char)0xFF;
如何使用字节复制 Java 中的类似情况? 谢谢
好吧,碰巧-1是0xFF。 一切都是正确的。 byte
使用二进制补码存储从 -128 到 127 的值。
在 Java 中没有无符号类型。 如果要使用位模式,请使用字节。 在这种情况下,0xFF 和 -1 是一样的。 如果你想使用数字,即 0xFF 实际上是 255 而不是 -1,那么你需要使用更大的类型,比如 short。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.