gpt4 book ai didi

java - 十六进制值的错误十进制表示

转载 作者:行者123 更新时间:2023-12-01 12:38:08 24 4
gpt4 key购买 nike

我有一个十六进制表示形式的小数据集 -

byte[] bb = new byte[] { (byte)0x7D, (byte)0x44, (byte)0xCC };

为了了解这些值如何以十进制表示形式出现,我执行了以下操作 -

Log.i("DECIMAL VALUE of 7D>>", buf[i] + "");
Log.i("DECIMAL VALUE of 44>>", buf[i+1] + "");
Log.i("DECIMAL VALUE of CC>>", buf[i+2] + "");

它打印的是 -

DECIMAL VALUE of 7D>> 125

DECIMAL VALUE of 44>> 68

DECIMAL VALUE of CC>> -52

查看网站 -

http://hextodecimal.com/index.php?hex=CC

字节CC的十进制表示为204

在我的应用程序中,我收到 Index Out Of Bounds Exception 只是因为 -52 处的索引在边界中不存在。

那么这个字节是如何变成负值的以及明确的解决方案是什么。

最佳答案

Java 中的字节是有符号的,即范围从 -128 到 127。如果要表示数字 204,请使用 int

int[] bb = new int[] { 0x7D, 0x44, 0xCC };

如果您确实想将数据存储为字节,则可以将其转换为无符号,并使用它在数组中进行索引。

yourArray[bb[1] && 0xFF]

请参阅以下问题:How to Convert Int to Unsigned Byte and Back

关于java - 十六进制值的错误十进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379550/

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