|
intmax2147483647Jan 15, 2019
1
不明觉厉
|
|
zgcwkjJan 15, 2019
2
Integer.parseInt(要转换, 16)
|
|
3
@zgcwkj #2 不行呀
[]( https://imgchr.com/i/Fz0mSf) |
|
feiyuanqiuJan 15, 2019 via Android
4
怪语言、怪类库、怪 ide 之前能不能先想想是不是自己的问题呢?
这个方法下面就是 ecodeHexString 方法 |
|
raphael008Jan 15, 2019
5
DatatypeConverter.printHexBinary(var).var
|
|
hcymk2Jan 15, 2019
6
String.format("%02X ", b)
|
|
gaiusJan 15, 2019
7
要字符串就找 string 结尾的方法
|
|
8
@feiyuanqiu #4 不是,你这么还这么大火气呢?
我又没逼你回答,我拿到字符串咋处理。再说 char 数字 toString 的结果跟那个方法一样,我还不知道试试其他方法么? |
|
tr0ubleJan 15, 2019
9
Integer.toHexString(35)
|
|
fireyeJan 15, 2019
10
这个并未问题啊 10 进制 35 -> 16 进制 23
楼主想说明什么呢 |
|
chenstackJan 15, 2019
12
char[] hex = {'2', '3', '2', '3'};
System.out.println(hex); // 2323 结果是没问题的,你拿 Arrays.toString(hex)结果自然是[2, 3, 2, 3] |
|
marcong95Jan 15, 2019
13
LZ 你要不先温习一波 Java 基础如何。。。
|
|
chenstackJan 15, 2019
17
@javen73 #14 因为转换结果是字符数组,不是说 35 变成 23 这个数值。你总不能要求{42, 42} 转成 {2a, 2a},用 char[]表示只能是{'2', 'a', '2', 'a'}。{42, 42} 和 {0x2a, 0x2a}是等价的,不存在转换这个说法
|
|
marcong95Jan 15, 2019
18
@javen73 你也说了库是 commons-codec,从名字可以得知这是个编码的东西,其目的并不是为了完成某些计算机原理课上 35 -> 0x23 这种事情的。
而 Hex.encodeHex 是把某一段二进制数据编码成 16 进制字符串,输入以 byte[]存储的一段数据,输出一个 16 进制字符串,只是这个字符串用了 char[]形式存储。 你的 a 其实表示的是一块长度为 2 字节的数据块,并不是两个 10 进制数字。 你的输出方式输出了这个字符数组,而不是字符串。如果你通过某种方式(例如`String.valueOf(hex)`)把这个字符数组转回字符串的话,那就是"2323"了。或者使用楼上说得 encodeHexString 直接返回 String 类型的字符串 此外,为了完成某些计算机原理课上的“ 10 进制转 16 进制”这种事情的,可以使用 Integer.toString(整数, 16)这种形式 |