Python十六进制字符
1. python 把16进制字符串转化为16进制数字, 比如‘0x0012e’,转化为0x0012e
Python2.7.13(default,Jan192017,14:48:08)
[GCC6.3.020170118]onlinux2
Type"help","right","credits"or"license"formoreinformation.
>>>s='0x0012e'
>>>b=int(s,16)
>>>b
302
>>>print('{:x}'.format(b))
12e
>>>print('{:#x}'.format(b))
0x12e
>>>print('{:#07x}'.format(b))
0x0012e
2. python为什么中文显示的都是16进制的
先试试
print each.decode('utf-8').encode('gb18030')
还不行的话,那就需要确认几个东西:
1, 你的代码里的字符是什么编码的, 比如你的secureCRT是utf8的,那么它就是utf8的。
2,export LANG=en_US.utf8,这一步是为了让linux正确的解析字节流(编码)以便对应到字符。
3,前两步之后,通过secureCRT看你输入的汉字是不会乱码的。
4,源代码的coding改成utf8,这是为了让python解析源代码时知道如何将字面常量字符串转到unicode内码。
5,如果你是py2.x,那么encode到utf8再输出。
6,如果你是Py3.x,那么直接print即可,python3.x会将unicode内码转到LANG编码。
3. python读取字符串中间的16进制数字
这个转了十进制又转了十六进制,都是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++十六进制查看
4. python 16进制转字符串
你的16进制的串“C7 EB CE F0 BE C6 BA F3 BC DD B3 B5”是gbk编码的,通过以下方法可以转为字符串。
>>>s="C7EBCEF0BEC6BAF3BCDDB3B5"
>>>s=s.replace("","")
>>>prints.decode("hex")
请勿酒后驾车
5. 如何用python将utf8编码的16进制字符串转换成对应的文字
#coding:utf-8
'''
参考用
mystery=b"xe5x88xab"
x=mystery.decode('utf-8')
print(x)
y=bytearray.fromhex(xe5x88xab).decode()
print(y)
'''
var=1
whilevar==1:
a=input('输入UTF-8的16进制编码: ')
b=list(a)
#print(b)
leng=len(b)
i=0
while(i<(1.5*leng)):
b.insert(i,'\x')
i+=3
#print(b)
c=str(''.join(b))
#print(c)
d='b'+"'"+c+"'"
#print(d)
x=eval(d).decode('utf8')
print('转换结果为: {} '.format(x))
我这个是输入没有x这种形式的,如输入“44”(代表“D”的16进制UTF8码),输出"D"
如果你需要输入形如x44这种,需要自己修改一下。
6. python的十六进制表示为0—9af吗
是的,十六进制是0-9,ABCDEF表示,表示十六进制需要在前面加上0x,例如十进制的10,十六进制是0xA
7. 在Python里 16进制的字符串怎么转化为汉字呢
做下进制转换就行了
#python 2.6以后内置函数
#10进制转为2进制
>>> bin(10)
'0b1010'
#2进制转为10进制
>>> int("1001",2)
9
#10进制转为16进制
>>> hex(10)
'0xa'
#16进制到10进制
>>> int('ff', 16)
255
>>> int('0xab', 16)
171
#十进制转为八进制
>>print("%o" % 10)
>>12
#16进制到2进制
>>> bin(0xa)
'0b1010'
>>>
8. 在Python里 16进制的字符串怎么转化为汉字呢
做下进制转换就行了
#python
2.6以后内置函数
#10进制转为2进制
>>>
bin(10)
'0b1010'
#2进制转为10进制
>>>
int("1001",2)
9
#10进制转为16进制
>>>
hex(10)
'0xa'
#16进制到10进制
>>>
int('ff',
16)
255
>>>
int('0xab',
16)
171
#十进制转为八进制
>>print("%o"
%
10)
>>12
#16进制到2进制
>>>
bin(0xa)
'0b1010'
>>>
9. python 16进制字符串怎么转换成16进制整数
hex_str = "0xff"
hex_int = int(hex_str, 16)
print(hex_int)#255
10. python里怎么把字符串转化为16进制表示
python里常规整型数的位数和机器的位数以及编译器位数有关,分为32位和64位。从python2.2开始,如果int()的参数超出常规整型数范围,结果会自动转换成长整型,而长整型数的位数只和机器的内存大小有关。
所以你要想象C那样自动截取超出的位,估计只能用位运算了。