gpt4 book ai didi

java - 为什么在 Java 中将十六进制数转换为字节不起作用?

转载 作者:太空狗 更新时间:2023-10-29 19:53:32 27 4
gpt4 key购买 nike

“字节 FOO = 0xFE;”在 Java 中不起作用。

“无法从 into 转换为 byte” 但它适用于 C++。如何解决?

最佳答案

Value 0xFE 等价于int中的254,不在byte范围内,所以不会做隐式类型转换,如果您尝试将其存储在一个字节中。您的 RHS 值必须在 [-128 到 127] 范围内才能以字节为单位容纳。

或者,您可以通过显式类型转换明确告诉编译器存储它:

byte FOO = (byte)0xFE;

但是,如果您存储的值适合 byte 的范围,则不需要显式类型转换。

byte FOO = 0x20;  // OK, can accommodate in byte.

参见 JLS - Section # 5.1有关类型转换的更多详细信息。

JLS - Section # 5.2其中专门讨论了Assignment Conversion

引用来自JLS的声明:-

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.

关于java - 为什么在 Java 中将十六进制数转换为字节不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13098010/

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