python 把16进制字符串转化为16进制数字, 比如‘0x0012e’,转化为0x0012e

 我来答
夜落灬归根
2017-08-25 · TA获得超过182个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:31.5万
展开全部
这个转了十进制又转了十六进制,都是string,而不是数值
print出来,是以string 输出的。

分享一个我以前的

#比如hex.log 里面是E3F2A1
#就要往文件out.bin里写 0xE3 0xF2 0xA1

import string
HEX_file_name = "hex.log"
BIN_file_name = "out.bin"

input_file = open(HEX_file_name,'r')
output_file = open(BIN_file_name,'wb')
for lines in input_file.readlines():
lines = lines.replace(' ','').replace('\n','').upper()
for i in range(0, len(lines), 2):
chars = lines[i:i+2]
output_file.write(chr(int(chars, 16)))
input_file.close()
output_file.close()

核心就是
for i in range(0, len(lines), 2):
chars = lines[i:i+2]
output_file.write(chr(int(chars, 16)))
看懂了就懂了
out.bin可以用ultraedit或者notepad++十六进制查看
wenjie1024
2017-09-06 · TA获得超过2381个赞
知道大有可为答主
回答量:1737
采纳率:72%
帮助的人:858万
展开全部
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = '0x0012e'
>>> b = int(s, 16)
>>> b
302
>>> print('{:x}'.format(b))
12e
>>> print('{:#x}'.format(b))
0x12e
>>> print('{:#07x}'.format(b))
0x0012e
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lpe234
2017-09-08 · TA获得超过2778个赞
知道小有建树答主
回答量:1250
采纳率:50%
帮助的人:565万
展开全部
In [1]: int('0x0012e', 16)
Out[1]: 302

In [2]: hex(302)
Out[2]: '0x12e'

In [3]: hex(int('0x0012e', 16))
Out[3]: '0x12e'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waketzheng
推荐于2018-02-27 · TA获得超过644个赞
知道小有建树答主
回答量:566
采纳率:63%
帮助的人:150万
展开全部
>>> s = '0x0012e'
>>> a = int(s, 16)
>>> a
302
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蒲公英随风飘舞哈
2013-01-31 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:527万
展开全部
eval('0x0012e')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式