我正在尝试将一些代码从Python转换为java。代码正在做的一件事是将数字转换为十六进制。但是当我在java中看到结果时。这与Python中的情况不同。
要么我在代码中做错了什么,要么在java和python中进行转换有区别。如果有不同的转换。有人能告诉我我需要做什么,这样java应用程序才能以同样的方式进行转换吗?
JAVA
Integer.toHexString(tempString.charAt(d));Python:
hex(ord(d)).replace("0x","")更多信息
它读取一个文件,我不知道里面的数据。结果应该是什么
java的结果是:
11FFFDpython的结果是:
11E37B发布于 2014-07-04 12:50:59
在不知道输入的情况下,很难分辨。但是,目前可用的有限信息的方式是,您没有访问相同的东西,至少在这些代码示例中是这样的。
爪哇:
Integer.toHexString(tempString.charAt(d));在python中应该是:
hex(ord(tempString[d])).replace('0x', '')目前,您正在访问索引的ord(),而不是输入字符串中的字符位置。
首先,应该检查您的输入,以确保问题是转换,而不是输入(这就是它的出现方式)。
发布于 2017-08-22 14:30:28
就像@Mathias所说的,在Java中转换一个字符,在Python中转换一个int。
python中的ord()函数返回char的int表示,您需要通过将char转换为int来实现相同的操作:
Integer.toHexString((int) tempString.charAt(d));https://stackoverflow.com/questions/24574531
复制相似问题