- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到了一个枚举,其中每个枚举常量都有一个字节和一个接口(interface)对象(通过 lambda)
//...
public enum InstructionSet {
//...
INSTRUCTION_HALT((byte) 0xF0, (ticksSinceStart) -> {
return halt(ticksSinceStart);
});
private final byte opCode;
private MicroOperationPlan plan;
private InstructionSet(byte opCode, MicroOperationPlan opPlan) {
this.opCode = opCode;
this.plan = opPlan;
}
//...
public byte getOpByte() {
return this.opCode;
}
}
现在我在主方法中得到了调试输出。在我的 main 方法之前没有执行更多代码。字节“opCode”在我的枚举中是最终的,因此无法更改。调试指令:
public static void main(String[] args) {
System.out.println(Integer.toHexString(InstructionSet.INSTRUCTION_HALT.getOpByte()));
//...
}
我认为应该打印到终端:f0
终端打印的内容:ffffffff0
当我不将其转换为十六进制字符串时,它仍然在终端中打印 -16,相当于 fffffff0 的十进制数是多少。
发生了什么?
最佳答案
使用默认的符号继承方法将一个字节 1111 0000
扩展为四个字节:1111 1111 1111 1111 1111 1111 1111 0000
,然后转换为十六进制字符串。
正如 JB Nizet 指出的那样,字节在 Java 中是有符号的,因此 byte
的值不能高于 127;如果高位被设置,则它们为负。
因此,您必须撤消默认的符号继承行为,例如
System.out.println(Integer.toHexString(InstructionSet.INSTRUCTION_HALT.getOpByte() & 0xFF))
关于java - 字节神奇地变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839183/
tty_driver 结构中的“神奇”值是什么 struct tty_driver { int magic; /* magic number for this stru
这是一个等效的提取代码: #include #include #include #include #include class ChatMessageEdit : public QTextE
我还没有找到适合我的这个问题的具体答案,但也许我误解了一两个关键点。 我正在尝试为一个项目创建数据迁移策略,其中 3 个系统(2 个 MySQL、1 个 MS SQL)将合并到 1 个新系统 (MS
我想在输出 JSON 时从 ActiveRecord/ActiveModel 类中过滤掉特定字段。 最直接的方法就是覆盖 as_json,可能像这样: def as_json (options = n
我是一名优秀的程序员,十分优秀!