gpt4 book ai didi

java - 如何在 Java 中显示十六进制/字节值

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:44:02 26 4
gpt4 key购买 nike

int myInt = 144;
byte myByte = /* Byte conversion of myInt */;

输出应为 myByte : 90(十六进制值 144)。

所以,我做到了:

byte myByte = (byte)myInt;

我得到了 myByte 的输出:ffffff90。 :(

我怎样才能摆脱那些ffffff

最佳答案

byte 是有符号类型。它的值在 -128 到 127 的范围内; 144不在这个范围内。 Java 中没有无符号字节类型。

如果您使用的是 Java 8,将其视为 0 到 255 范围内的值的方法是使用 Byte.toUnsignedInt:

String output = String.format("%x", Byte.toUnsignedInt(myByte));

(我不知道你如何格式化十六进制输出的整数。没关系。)

Java 8 之前,最简单的方法是

int byteValue = (int)myByte & 0xFF;
String output = String.format("%x", byteValue);

但是在你做任何一个之前,确保你真的想要使用一个byte。您可能不需要。如果你想表示值 144,你不应该使用 byte,如果你不需要的话。只需使用 int

关于java - 如何在 Java 中显示十六进制/字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553993/

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