栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 十六进制数与ascii码的转换

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 十六进制数与ascii码的转换

有时候我们可能会需要做十六进制数与ascii码的转换,但是上网搜索转换器需要耗费一定时间,有时候还不一定能满足自己的需要

例如,如何将'6a 6b 6c 6d'转换为相应的ascii码字符?

可能我们可以去查ascii码表,但是一来,查找耗时间,第二呢,如果我们需要同时查找多个十六进制的对应的ascii码值,总不能一个个查吧。
所以,我们可以自己写一个简单的代码,实现多十六进制数与ascii的转换。

1、十六进制转换为ascii
def main():
    try:		#为确保健壮性,需要对异常进行处理
        def hexToAscii(hN):
            n=map(lambda x:chr(int(x,16)),hN.split(' '))
            for i in n:
                print(i,end="")			#对映射进行遍历
        n = input('输入十六进制数,以空格为分隔符:')
        hexToAscii(n)
        print()
    except:	 #不正常的输入的情况下,会提示你重新输入,并再次执行主函数
            print("请输入正确的数!")
            main()      
main()

lambda函数是匿名函数,可以对输入的值进行处理

split()将输入的字符串进行分割,以’ '为分隔符,将字符串分割为数组

map函数有两个参数,可以对指定的序列做出映射,简单来说,就是可以对序列进行处理,然后返回一个map对象

int(x,16)将十六进制数转换为十进制数
chr()实现的功能就是将十进制数转换为ascii码
合起来就是map(lambda x:chr(int(x,16),hN.split(’ '))

例如,通过以下代码,返回序列中每一个值与2的乘积

十六进制转换为十进制

字符串分割

最后实现这样的效果

2、ascii转十六进制
def main():
    try:
        def AsciiToHex(string):
            s = map(lambda x:hex(ord(x)).strip('0x'),string)
            for t in s:
                print(t,end=" ")
        string = input('输入字符串:')
        AsciiToHex(string)
        print()
    except:
        print("请输入正确的数!")
        main()
main()

map()也可以对字符串做出映射

hex(ord(x))将ord(x)得到的int类型的十进制数转换为十六进制

string.strip(‘0x’)对得到的字符串进行处理,去除’0x’
最后的效果:

3、批处理文件
@echo off
chcp 65001
title ASCII码转换
color f2

:menu
echo			++++选项++++
echo 		1 ascii to hex 
echo 		2 hex to ascii
echo 		3 exit
set /p number=输入序号:
if %number%==1 goto ascii_hex
if %number%==2 goto hex_ascii
if %number%==3 exit
echo 请输入序号:(1-3):
pause
goto menu

:ascii_hex
python asciiToHex.py
pause
goto :menu

:hex_ascii
python hexToAscii.py
pause
goto menu

由于使用的是相对路径,所以需要把它们放在同一个文件夹下,同时还要确保python可以在cmd里运行(配置python环境变量)。

最后的效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1037186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号