java - 什么时候需要将 java 中的十六进制文字转换为(字节)?

标签 java casting hex

出于测试目的,我尝试创建一个这样的数组:

byte[] expected = new byte[]{0x2f, 0x0d4, 0xe1, 0xc6, 0x7a, 0x2d, 0x28, 0xfc}

我原以为 java 会提示并要求我将这里的每个文字转换为 (byte),但出乎意料的是,它只要求我转换 0x4d,例如,而不是 0x2f。工作示例:

new byte[]{0x2f, (byte) 0xd4, (byte) 0xe1, (byte) 0xc6, 0x7a, 0x2d, 0x28, (byte) 0xfc}

它是如何工作的?

最佳答案

我怀疑这是因为 Java 字节是有符号的,因此您的范围介于 -128 和 127 之间。因此所有 >127 (0x80) 的值都必须显式转换。

关于java - 什么时候需要将 java 中的十六进制文字转换为(字节)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614953/

相关文章:

java - 可完成的 future : Await percentage complete

Java:这是在特定时区将当前时间作为日历对象获取的正确方法吗?

java反射调用函数

java - 如何将对象列表转换为接口(interface)列表?

c# - 为什么这个转换不起作用?

php - PHP MYSQL 组合的转换问题

audio - 在 .wav 文件和十六进制编辑器中查找样本数

命令行中的 Java 堆空间错误

c# - 哪个正则表达式和 toUpper 组合更快?

c# - 将十六进制字符串转换为数字类型并返回