【问题标题】:Sign(+/-) error in byte in Java byte setting operationsJava字节设置操作中的字节符号(+/-)错误
【发布时间】:2011-09-26 01:50:18
【问题描述】:

我正在使用 Java 进行清除

public byte[] orbits = new byte[38];

如果我在做的话

orbits[24] = (byte)0xFF;

orbits[24] 应该由 11111111 填充,即 FF(十六进制),而不是填充 -1。

C++ 中的这个操作完美运行

char orbits[38]
orbits[24] = (char)0xFF;

如何使用字节复制Java中的类似情况? 谢谢

【问题讨论】:

    标签: java c++ char byte


    【解决方案1】:

    嗯,碰巧-1 是0xFF。一切都是正确的。 byte 使用 two's complement 存储从 -128 到 127 的值。

    在 Java 中没有无符号类型。如果要使用位模式,请使用字节。在这种情况下,0xFF 和 -1 是一样的。如果要使用数字,即 0xFF 实际上是 255 而不是 -1,则需要使用更大的类型,例如 short。

    【讨论】:

    • 所以你是说,如果我们逐位比较它们,那么它在 Java 中将是相等的,让我们说一个 for 循环。
    猜你喜欢
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多