导航:首页 > 编程语言 > python字符串变十六进制

python字符串变十六进制

发布时间:2022-12-06 15:38:04

1. 如何用python将十进制数字转为二进制,以及将二进制转为十六进制

1、将十进制转换成二进制,利用bin()方法。

2. 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

3. Python中的不同进制的语法和转换

不同进制的书写方式
八进制(Octal) 0o377
十六进制(Hex) 0xFF
二进制(Binary) 0b11111111
不同进制之间的转换
Python提供了三个内置的函数,可以用来在不同进制间做转换。
>>> oct(255), hex(255), bin(255)
('0o377', '0xff', '0b11111111')

还可以使用int函数,把字符串转成数值
>>> int('255'), int('0xFF', 16)
(255, 255)

除此之外还可以使用eval,功能类似于int函数,但是它的参数是python代码。
>>> eval('255'), eval('0xFF')
(255, 255)

当然也可使用字符串的格式化输出
>>> '{0:0}, {1:x}, {2:b}'.format(255, 255, 255)
'255, ff, 11111111'

>>> '%o, %x, %X' % (255, 255, 255)
'377, ff, FF'

4. python 如何将16进制数据字符串去掉0x部分,然后转换成16进制数据写入到文件中

#-*-coding:utf-8-*-

__author__='lpe234'
__date__='2015-04-01'


hex_list=['0xAA','0xED','0xEF','0xDE']
f=file('x.txt','a+')
forxinhex_list:
ifx.startswith('0x'):
x=x[2:]
printx
f.write(x+' ')
f.close()

输出文件:

AA
ED
EF
DE

5. python 16进制转字符串

你确定汉字没给错或者是16进制串没给错?

unicode字符串编辑是两位16进制表示一个汉字。所以你这个串转为python格式应该是:

u""

所以直接:

printu""

结果是:쟫컰뻆뫳볝뎵


这才是"请勿酒后驾驶"的16进制:''

6. python中十进制转成十六进制代码

在python中,十进制转换十六进制使用hex()函数。
如:hex(10),十六进制数为0xa
hex(17),十六进制数为0x11

7. 关于python如何实现各进制转换的总结大全

ctf经常遇到进制转换的问题,就正好做一个进制转换总结,分享出来供大家参考学习,下面来一起看看详细的介绍:
字符串与十六进制转换

例如网络ctf 12月的第二场第一个misc
?

1

626536377D

比较简单的一种做法就是直接调用字符串的.decode('hex')解密即可, 但如果不用这个函数你会怎么解呢?
一种思路就是先2个分组,解出每组的ascii值,合并下字符串即可得到,具体代码如下
?

1234567

import res='626536377D's = re.findall(r'.{2}',s)s = map(lambda x:chr(int(x,16)),s)print ''.join(s)>>>flag{ec8b2ee0-3ae9-4c21-a012-08aa5fa7be67}

前面说了字符串的decode('hex')函数,另外还有两个转16进制的函数,这里都总结一下
内置函数hex()

只能转换10进制整数为十六进制,不能转字符串
binascii库的hexlify()和b2a_hex()

这两个函数的功能是将字符串转换成十六进制,对应的解密函数分别为 unhexlify()和a2b_hex()
进制互转

二进制,八进制,十六进制转10进制比较简单,直接调用

int函数
?

1

int(str,base) //返回十进制整数,但注意此时第一个参数为字符串

对应的解密函数分别是
?

12345

bin() //10进制转二进制 oct() //十进制转八进制 hex() //十进制转十六进制

但二进制直接转16进制就需要多走一步了,先用int转十进制,在用上面提到的hex()函数将十进制转换成十六进制,比较精简的写法是
?

1

map(lambda x:hex(int(x,2)),['0011']) //lambda表达式

或者是
?

1

[hex(int(x,2)) for x in ['0011']] //列表解析

对应的解密函数就是
?

1

map(lambda x:bin(int(x,16)),['ef'])

最后在附上自己用python写的一个进制转换小工具,主要功能是对一组二进制,或者ascii,或十六进制转换成字符串,想必ctf上也经常会遇到这类题型吧
?

041424344

# make by 江sir#coding:utf-8import reimport argparse def bintostr(text): text = text.replace(' ','') text = re.findall(r'.{8}',text) s = map(lambda x:chr(int(x,2)),text) #批量二进制转十进制 flag = ''.join(s) return flag def asciitostr(text): if ' ' in text: text = text.split(' ') elif ',' in text: text = text.split(',') s = map(lambda x:chr(int(x)),text) flag = ''.join(s) return flag def hextostr(text): text = re.findall(r'.{2}',text) #print text s = map(lambda x:chr(int(x,16)),text) #print s flag = ''.join(s) return flag if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("-b") parser.add_argument("-a") parser.add_argument("-x") argv = parser.parse_args() #print argv if argv.b: res = bintostr(argv.b) elif argv.a: res = asciitostr(argv.a) elif argv.x: res = hextostr(argv.x) print res

用法:
十六进制转字符串:

626536377D
?

12

bintostr.py -x "626536377D"flag{ec8b2ee0-3ae9-4c21-a012-08aa5fa7be67}

二进制转字符串:

可以有空格,也可以无空格
00101111 01100110 00110110 00110111 00110011 00110010 00110100 00110001 00110000 01100001 01100001 01100100 01100011 00110000 00110011 00110111 01100110 01100010 00110000 01100011 01100010 01100001 01100001 00110000 00110000 01100011 00110111 00110101 00110011 00110001 00110011 00110111 00110011 00101110 01110100 01111000 01110100
?

12

bintostr.py -b "00101111 01100110 00110110 00110111 00110011 00110010 00110100 00110001 00110000 01100001 01100001 01100100 01100011 00110000 00110011 00110111 01100110 01100010 00110000 01100011 01100010 01100001 01100001 00110000 00110000 01100011 00110111 00110101 00110011 00110001 00110011 00110111 00110011 00101110 01110100 01111000 01110100"/.txt

ascii转字符串

可以是空格分隔,也可以是,分隔
s='45 46 45 46 32 45 32 46 46 45 46 32 46 45 46 46 32 46 46 46 32 45 46 46 46 32 46 46 45 45 46 45 32 45 46 46 46 32 46 46 46 32 46 45 46 46 32'
?

12

bintostr.py -a "45 46 45 46 32 45 32 46 46 45 46 32 46 45 46 46 32 46 46 46 32 45 46 46 46 32 46 46 45 45 46 45 32 45 46 46 46 32 46 46 46 32 46 45 46 46 32"-.-. - ..-. .-.. ... -... ..--.- -... ... .-..

以上实例均来自某些ctf赛题
总结

8. python 16进制字符串怎么转换成16进制整数

hex_str = "0xff"
hex_int = int(hex_str, 16)
print(hex_int)#255

9. python我怎么把数组里面的每个字符串转换成16进制数啊

  1. 先把字符串转化为数字格式,

  2. 再用hex()把十进度数字转化为十六进制数

代码如下:

source=['1','2','3','4']
destination=[]
foriteminsource:
destination.append(hex(int(item)))
print(destination)

输出如下:

['0x1','0x2','0x3','0x4']
阅读全文

与python字符串变十六进制相关的资料

热点内容
俄罗斯圣诞小姐姐入眠解压声音 浏览:452
手机分身加密有什么用 浏览:261
程序员怎么跟男朋友说我爱你 浏览:309
单片机频率变化 浏览:428
哪个app可以看赌神 浏览:466
rstudiopython 浏览:127
团队如何开发服务器 浏览:440
php选择数据库的函数 浏览:772
dhcp服务器新增地址 浏览:930
程序员跑三个月外卖 浏览:941
linux配置tomcat的jdk路径 浏览:363
液体压缩公式 浏览:777
php开发后台管理系统 浏览:360
python二分查找递归 浏览:447
微信如何发视频不压缩 浏览:902
河北2021美术高考综合分算法 浏览:606
如何为电脑文件夹加密 浏览:835
电脑自启动应用命令 浏览:690
php判断一个文件是否存在 浏览:829
php导出xml文件 浏览:904