java 中的 0x66756e63 与 10211711099 有什么区别
What is difference 0x66756e63 vs 10211711099 in java
我试过这段代码并打印字节。但是这个显示问题。
InputStream localInputStream = new FileInputStream(new File(srcName));
int len = localInputStream.available();
byte[] arrayOfByte1 = new byte[len];
localInputStream.read(arrayOfByte1, 0, len);
for(int i = 0; i < len; i++) {
System.out.println(arrayOfByte1[i]);
}
结果:
纯文本:func
十六进制代码:66 75 6E 63(在十六进制编辑器中)
此代码的结果:102 117 110 99
为什么显示这个问题?我在等待答案。谢谢。
当您将数字转换为字符串时(例如通过打印,或使用 String.valueOf
,或 Byte.toString
),Java(与大多数语言一样)始终使用十进制默认。
如果你想以十六进制打印它,你可以使用 Integer.toHexString
,但请注意它不会添加前导零 - 14 变成 "E",而不是“0E”。
System.out.println(Integer.toHexString(arrayOfByte1[i]));
我试过这段代码并打印字节。但是这个显示问题。
InputStream localInputStream = new FileInputStream(new File(srcName));
int len = localInputStream.available();
byte[] arrayOfByte1 = new byte[len];
localInputStream.read(arrayOfByte1, 0, len);
for(int i = 0; i < len; i++) {
System.out.println(arrayOfByte1[i]);
}
结果:
纯文本:func
十六进制代码:66 75 6E 63(在十六进制编辑器中)
此代码的结果:102 117 110 99
为什么显示这个问题?我在等待答案。谢谢。
当您将数字转换为字符串时(例如通过打印,或使用 String.valueOf
,或 Byte.toString
),Java(与大多数语言一样)始终使用十进制默认。
如果你想以十六进制打印它,你可以使用 Integer.toHexString
,但请注意它不会添加前导零 - 14 变成 "E",而不是“0E”。
System.out.println(Integer.toHexString(arrayOfByte1[i]));