进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等
废话不多上,直接上例子
整数之间的进制转换:
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’x01x00x00x00′)) ==> (1, 0)
转义为long型整数: struct.unpack(‘<L’, bytes(b’x01x00x00x00′)) ==> (1,)
——————-
整数转字节串:
转为两个字节: struct.pack(‘<HH’, 1,2) ==> b’x01x00x02x00′
转为四个字节: struct.pack(‘<LL’, 1,2) ==> b’x01x00x00x00x02x00x00x00′
——————-
字符串转字节串:
字符串编码为字节码: ’12abc’.encode(‘ascii’) ==> b’12abc’
数字或字符数组: bytes([1,2, ord(‘1’),ord(‘2′)]) ==> b’x01x0212’
16进制字符串: bytes().fromhex(‘010210′) ==> b’x01x02x10’
16进制字符串: bytes(map(ord, ‘x01x02x31x32′)) ==> b’x01x0212’
16进制数组: bytes([0x01,0x02,0x31,0x32]) ==> b’x01x0212′
——————-
字节串转字符串:
字节码解码为字符串: bytes(b’x31x32x61x62′).decode(‘ascii’) ==> 12ab
字节串转16进制表示,夹带ascii: str(bytes(b’x01x0212′))[2:-1] ==> x01x0212
字节串转16进制表示,固定两个字符表示: str(binascii.b2a_hex(b’x01x0212′))[2:-1] ==> 01023132
字节串转16进制数组: [hex(x) for x in bytes(b’x01x0212′)] ==> [‘0x1’, ‘0x2’, ‘0x31’, ‘0x32’]
===================
测试用的python源码
NBA首次父子同台终上演,布朗尼与詹姆斯季前赛合砍19分
NBA首次父子同台终上演,布朗尼与詹姆斯季前赛合砍19分,湖人,布朗尼,nba,NBA,勒布朗詹姆斯,勒布朗·詹姆斯,布雷克·格里芬(72)人阅读时间:2024-10-07男子花20万买二手小米SU7,回家后遭原车主远程锁车
男子花20万买二手小米SU7,回家后遭原车主远程锁车,小莉,过户,约定,弓先生,购车合同,小米su7(77)人阅读时间:2024-10-07杜特尔特否认参选:我都这把年纪了,要我死?
杜特尔特否认参选:我都这把年纪了,要我死?,杜特尔特,参议院,副总统,总统(58)人阅读时间:2024-10-0741岁俄罗斯男子模仿小李子走红,却在发福后失业,已自愿去了前线
41岁俄罗斯男子模仿小李子走红,却在发福后失业,已自愿去了前线,罗曼,采夫,俄罗斯,莫斯科,好莱坞,小李子,迪卡普里奥(76)人阅读时间:2024-10-07≌是什么意思数学符号 ≌是什么意思数学符号什么时候学 视频\卜
数学符号≌是全等于的意思,表示两个图形能完全重合,包括形状和面积,全等于是程序设计的一种逻辑运算符。数学符号的发明及使用比数字要..2024-10-07数学符号≡是什么意思 数学符号乛是什么意思
数学符号≡是恒等的意思,≡是无条件等于,不论条件怎么变,都是成立的。恒等式是无论其变量如何取值,等式永远成立的算式。恒等式成立的范..2024-10-07数学期望可以是负数吗(数学期望值可以为负吗)
数学期望可以是负数,期望等于随机变量乘以相应的概率,随机变量可以取负,因此期望就可能为负。期望值并不一定等同于常识中的“期望”,“..2024-10-07数学感叹号是什么意思(数学上感叹号是什么意思)
数学感叹号是阶乘的意思,阶乘是基斯顿·卡曼于1808年发明的运算符号,是数学术语。一个正整数的阶乘是所有小于及等于该数的正整数的积,..2024-10-07