首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java转换为十六进制与Python转换为十六进制

Java转换为十六进制与Python转换为十六进制
EN

Stack Overflow用户
提问于 2014-07-04 12:37:44
回答 2查看 530关注 0票数 0

我正在尝试将一些代码从Python转换为java。代码正在做的一件事是将数字转换为十六进制。但是当我在java中看到结果时。这与Python中的情况不同。

要么我在代码中做错了什么,要么在java和python中进行转换有区别。如果有不同的转换。有人能告诉我我需要做什么,这样java应用程序才能以同样的方式进行转换吗?

JAVA

代码语言:javascript
复制
Integer.toHexString(tempString.charAt(d));

Python

代码语言:javascript
复制
hex(ord(d)).replace("0x","")

更多信息

它读取一个文件,我不知道里面的数据。结果应该是什么

java的结果是:

代码语言:javascript
复制
11FFFD

python的结果是:

代码语言:javascript
复制
11E37B
EN

回答 2

Stack Overflow用户

发布于 2014-07-04 12:50:59

在不知道输入的情况下,很难分辨。但是,目前可用的有限信息的方式是,您没有访问相同的东西,至少在这些代码示例中是这样的。

爪哇:

代码语言:javascript
复制
Integer.toHexString(tempString.charAt(d));

在python中应该是:

代码语言:javascript
复制
hex(ord(tempString[d])).replace('0x', '')

目前,您正在访问索引的ord(),而不是输入字符串中的字符位置。

首先,应该检查您的输入,以确保问题是转换,而不是输入(这就是它的出现方式)。

票数 0
EN

Stack Overflow用户

发布于 2017-08-22 14:30:28

就像@Mathias所说的,在Java中转换一个字符,在Python中转换一个int。

python中的ord()函数返回char的int表示,您需要通过将char转换为int来实现相同的操作:

代码语言:javascript
复制
Integer.toHexString((int) tempString.charAt(d));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24574531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档