gpt4 book ai didi

java - java中的字节比较

转载 作者:行者123 更新时间:2023-12-02 06:05:31 24 4
gpt4 key购买 nike

字节 - 字节发生时,这里实际发生了什么?假设,

byteResult = byte1 - byte2;

哪里,

byte1 = 0xff;
byte2 = 0x01;

那么,将 byte1 转换为值为 255 的整数,并将 byte2 1 和 byteResult 分配给 254,然后转换为 byte 0xFE?然后检查 if 条件?请详细帮助对我很有帮助。抱歉,如果我的问题含糊不清!在这里,我找到了一些东西,但不是我想要的东西。 Java Byte comparison

最佳答案

不,字节不会转换为 int。

来自JLS 5.2 Assignment Conversion :

In addition, if the expression is a constant expression (§15.28) of type byte, short, char, or int: - A narrowing primitive conversion may be used if the type of the variable is byte, short, or char, and the value of the constant expression is representable in the type of the variable.

另请检查 subtracting 2 bytes makes int?

这是Java编程的一个基本前提。所有整数均为 int 类型,除非专门转换为其他类型。因此,任何使用整数进行的算术都会自动将所有操作数从较窄的类型(byte、short)“提升”为 int 类型,并且使用 int 操作数进行算术的结果始终是 int。 (我想我现在已经把它打败了)。

如果您想要两个字节的算术结果,请执行以下操作:

short result = (short) (byte1 - byte2)

这种显式强制转换使得程序员有责任丢弃不需要的额外位。否则,整数运算以 32 位完成。

关于java - java中的字节比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com