python3常见编码转换

面向初学者的PythonPython中的十进制模块 Python有整数、浮点数和复数等数值数据类型,但是由于浮点数的机器依赖性,我们需要一种更精确的数据类型来进行高精度的计算。在本文中,我们将研究python中的十进制模块,它实现了精度高达28位的十进制数。 我们什么时候应该用十进制代替Python中的浮点数? Python将十进制数字实现为双精度浮点数,这些浮点数与机器有关。对于精度对于业务原因至关重要的计算,浮点数在不同的机器上运行时可能会导致错误。因此,对于这样的应用程序,我们需要一个与机器无关的数据类型来实现使用python中的十进制模块实现的十 阅读详情
http://blog.csdn.net/crylearner/article/details/38521685

python常用的十进制、16进制、字符串、字节串之间的转换,进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等。
一、整数之间的进制转换:
10进制转16进制: hex(16)  ==>  0x10
16进制转10进制: int('0x10', 16)  ==>  16
类似的还有oct(), bin()
-------------------
二、字符串转整数:
10进制字符串: int('10')  ==>  10
16进制字符串: int('10', 16)  ==>  16
16进制字符串: int('0x10', 16)  ==>  16
-------------------
三、字节串转整数:
转义为short型整数: struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))  ==>  (1, 0)
转义为long型整数: struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))  ==>  (1,)
-------------------
四、整数转字节串:
转为两个字节: struct.pack('<HH', 1,2)  ==>  b'\x01\x00\x02\x00'
转为四个字节: struct.pack('<LL', 1,2)  ==>  b'\x01\x00\x00\x00\x02\x00\x00\x00'
-------------------
五、字符串转字节串:
字符串编码为字节码: '12abc'.encode('ascii')  ==>  b'12abc'
数字或字符数组: bytes([1,2, ord('1'),ord('2')])  ==>  b'\x01\x0212'
16进制字符串: bytes().fromhex('010210')  ==>  b'\x01\x02\x10'
16进制字符串: bytes(map(ord, '\x01\x02\x31\x32'))  ==>  b'\x01\x0212'
16进制数组: bytes([0x01,0x02,0x31,0x32])  ==>  b'\x01\x0212'
-------------------
六、字节串转字符串:
字节码解码为字符串: bytes(b'\x31\x32\x61\x62').decode('ascii')  ==>  12ab
字节串转16进制表示,夹带ascii: str(bytes(b'\x01\x0212'))[2:-1]  ==>  \x01\x0212
字节串转16进制表示,固定两个字符表示: str(binascii.b2a_hex(b'\x01\x0212'))[2:-1]  ==>  01023132
字节串转16进制数组: [hex(x) for x in bytes(b'\x01\x0212')]  ==>  ['0x1', '0x2', '0x31', '0x32']

程序:

importbinascii
importstruct
 
def example(express, result=None):  
    if  result == None:  
        result = eval(express)  
    print(express, ' ==> ', result)    
  
if __name__ == '__main__':  
      
    print('整数之间的进制转换:')  
    print("10进制转16进制", end=': ');example("hex(16)")  
    print("16进制转10进制", end=': ');example("int('0x10', 16)")  
    print("类似的还有oct(), bin()")        
    print('\n-------------------\n')        
    print('字符串转整数:')  
    print("10进制字符串", end=": ");example("int('10')")  
    print("16进制字符串", end=": ");example("int('10', 16)")  
    print("16进制字符串", end=": ");example("int('0x10', 16)")        
    print('\n-------------------\n')        
    print('字节串转整数:')  
    print("转义为short型整数", end=": ");example(r"struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))")  
    print("转义为long型整数", end=": ");example(r"struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))")    
    print('\n-------------------\n')    
    print('整数转字节串:')  
    print("转为两个字节", end=": ");example("struct.pack('<HH', 1,2)")  
    print("转为四个字节", end=": ");example("struct.pack('<LL', 1,2)")        
    print('\n-------------------\n')        
    print('字符串转字节串:')  
    print('字符串编码为字节码', end=": ");example(r"'12abc'.encode('ascii')")  
    print('数字或字符数组', end=": ");example(r"bytes([1,2, ord('1'),ord('2')])")  
    print('16进制字符串', end=': ');example(r"bytes().fromhex('010210')")  
    print('16进制字符串', end=': ');example(r"bytes(map(ord, '\x01\x02\x31\x32'))")  
    print('16进制数组', end =': ');example(r'bytes([0x01,0x02,0x31,0x32])')        
    print('\n-------------------\n')        
    print('字节串转字符串:')  
    print('字节串解码为字符串', end=": ");example(r"bytes(b'\x31\x32\x61\x62').decode('ascii')")  
    print('字节串转16进制表示,夹带ascii', end=": ");example(r"str(bytes(b'\x01\x0212'))[2:-1]")  
    print('字节串转16进制表示,固定两个字符表示', end=": ");example(r"str(binascii.b2a_hex(b'\x01\x0212'))[2:-1]")  
    print('字节串转16进制数组', end=": ");example(r"[hex(x) for x in bytes(b'\x01\x0212')]")  
    print('\n===================\n')  
    print("以上原理都比较简单,看一下就明白了。这里仅仅是抛砖引玉,有更好更简单的方法,欢迎欢迎")  

以上是python3下的程序。
别再为数据格式头疼了!一份Python脚本搞定Crypto、Web3和数据分析中的常见编码转换 本文提供了一份Python数据转换终极指南,特别针对Crypto和Web3开发中的常见编码问题。从基础数据类型转换到Web3专属处理技巧,再到数据分析中的高效批量转换,本文详细介绍了如何用Python脚本解决各种数据格式互转难题,提升开发效率。 阅读详情

相关推荐

笔记-python字符串编码

(补充一个问题,在python3.x中,只要把unicode编码,字符串就会变成了bytes格式,也不直接打印成gbk的字符,我觉得就是想通过这样的方式明确的告诉你,想在python3.x中看字符串,必须是unicode,其他编码一律是bytes格式)。无论以什么编码存储的数据,只要我们的软件把数据从硬盘上读到内存,转成unicode来显示即可,由于所有的系统、编程语言都默认支持unicode,所有我们的gbk编码软件放在美国电脑上,加载到内存里面,变成了unicode,中文就可正常展示。

零正催照 1958

C语言:十进制转换成十六进制字符串和数组

案例:将1000转换成十六进制数组存储。

吻等离子的博客 7097

python中级】将10进制数转化为指定字节长度的16进制字符串

比如在电压电流的设置的时候,发送的串口指令,就经常需要将10进制的数转化为指定长度的16进制字符串。在上位机开发的过程中,经常需要发送串口指令,其中串口指令经常需要生成。一般的长度是2个字节或者1个字节。

jn10010537的博客 903

python字符串/Bytes/16进制/x01等之间的转换

总结 示例代码: text = "0123456789abcdef" print(text) b_text = bytes(text, encoding = "utf8") print(b_text) hex_text = binascii.unhexlify(b_text) #a2b_hex print(hex_text) b_ctext = binascii.hexlify(hex_text...

baron-周贺贺-代码改变世界ctw 2万+

Python】关于字节串的解析小坑

直接返回对应字节的十进制值。

Watson的博客 651

Python入门教程之字符串编码知识小结

提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别? 字符和字节 一个字符不等价于一个字节,字符是人类能够识别的符号,可以有多种表示方法,不同的表示方法会使用不同的字节数。比如字母A-Z都可以用ASCII码表示(占用一个字节),也可以用Unicode表示(占两个字节),还可以用UTF-8表示(占用一个字节)。 字符编...

chen801090的博客 285

Python 3中字节转换为字符串的方法

Python 3里,字节(bytes)和字符串(str)是两种不同的数据类型。字节用于存储二进制数据,而字符串则用于存储文本数据。在处理外部程序的输出、网络数据或者文件读取时,经常会遇到需要将字节对象转换为字符串的情况。

qq_29715355的博客 674

python之字符转换_Python基础之 一 字符编码转换

python2 / python3编码转换先上图一张:说明:python编码转换的流程是 先进行decode解码,然后进行encode编码解释:u'你好' -->带u表示为unicode编码b'xc4xe3xbaxc3' --> 带b的表示bytes类型由于utf8 是unicode的扩展,所以unicode和utf8之间是可以直接打印注意:所有decode动作都是将已编码文件解...

weixin_32562973的博客 321

Python常见字符编码及其之间的转换

参考:Python常见字符编码 + Python常见字符编码间的转换一、Python常见字符编码字符编码的常用种类介绍第一种:ASCII码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/...

微澜同学 1万+

python转换字符编码_转:Python常见字符编码及其之间的转换

一、Python常见字符编码字符编码的常用种类介绍第一种:ASCII码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。如下图所示:由于计算机是美国人发明的,因此,最早只有...

weixin_39833290的博客 1019

python文本编码转换_python3读取utf-8、gbk文件、编码转换、测试

平时用的最多的就是print输出看下效果,but 打印的时候老是能遇到知种编码报错这个字符不能编码那个字符不能解码等。下面就做个测试记录下看哪种情况下会报错执行环境cmd运行环境编码为936也就是gbkpycharm运行环境为utf-8python3编码说明先简单说下编码,unicode是国际统计的一种编码规范,utf-8就是使用这种规范实现的一种多字节编码。这个要搞清楚不清楚的自行搜索了解pyt...

weixin_39710966的博客 1457

python3设置编码为utf8_Python3 是如何解决棘手的字符编码问题的?

Python3 最重要的一项改进之一就是解决了 Python2 中字符串与字符编码遗留下来的这个大坑。Python 编码为什么那么蛋疼?已经介绍过 Python2 字符串设计上的一些缺陷:使用 ASCII 码作为默认编码方式,对中文处理很不友好。把字符串的牵强地分为 unicode 和 str 两种类型,误导开发者当然这并不算 Bug,只要处理的时候多留心也可以避免这些坑。但在 Python3 两...

weixin_39653766的博客 1220

pymssql查询表数据返回 ASCII 码值b'\x01\x00\x00\x00'

在查询SqlServer中表数据时返回结果出现b'\x01\x00\x00\x00',列类型为sql_variant、经过搜索一番,查询该类型列数据需要转换为字符串才可以,如: CONVERT(VARCHAR(40,列名))

Expec-乐的博客 1万+

python中的十六进制

python中的十六进制有两种表示方式,分别是 \x3e 0x3e 当时0x3e时,表示数字,如图: 当时 \x3e 是,print出来的是ASCII码对应的字符

qq_29566629的博客 1万+

十进制与字符串的转换,正向和逆向互转-C语言学习笔记2

任意10进制整数转为字符串

sys0613的博客 3159

python如何把10进制转为16进制

Python 中,可以使用内置的 hex() 函数来将 10 进制数转换为 16 进制数。下面是一个例子: decimal = 255 hexadecimal = hex(decimal) print(hexadecimal) 输出: 0xff 注意,返回的结果是一个字符串,并且以 0x 开头,这是 16 进制的标准前缀。如果您需要去掉前缀,可以使用字符串切片,例如: hexadecima...

weixin_42599558的博客 6497

python】 无符号int、float、double与16进制字符串的互相转换 有符号int与16进制字符串的相互转换

【代码】【python】 无符号int、float、double与16进制字符串的互相转换 有符号int与16进制字符串的相互转换

ChaoChao66666的博客 5984

python二进制转化模块struct

在pyton中,通过struct模块来对二进制进行转换,主要包括两大类函数,即用于打包的pack和用于解包的unpack。 其中,struct.pack的输入格式为struct.pack(format, v1, v2, ...),其中format为格式字符串,v1,v2..为将要转成bytes的字符。 例如 >>> import struct >>> struct.pack('i', 15) b'\x0f\x00\x00\x00' >>> struct.

微小冷的学习笔记 2870
上一篇: python文件操作
下一篇: 文章标题
just420
博客等级 码龄13年 6粉丝 8原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值