python数据转换

注意:
1:二进制字符中不能有10之外的字符。
        b'sfsf'是字节数组, 不是二进制字符串。
 
2:十六进制字符中不能有 0~f 以外的字符。
        'uds'是普通字符串, 不是十六进制字符串 
 
   十六进制字符串长度必须是偶数,也就是说,十六进制字符串中的 '1', 必须写成'01'的形式。
        '10d'是普通字符串, 不是十六进制字符串 
1、python中二进制表示形式有两种:
bytes 是字节数组  每个元素都在 0~255之间。
二进制字符串是二进制的字符串表示形式, 字符串中的字符都是1001:以 b'' 开头字符串,这是bytes字节数组, 显示时每个元素使用十六进制表示, 可以使用索引取值。
    bytes([15])  --->  b'\x0f'
    '19fsh'.encode() ---> b'19fsh'
    '大海'.encode() ---> b'\xe5\xa4\xa7\xe6\xb5\xb7'
    bytes([15]).decode()  ---> 报错:UnicodeDecodeError, unicode中没有15 这个字符
02: 使用bin()函数转化得到, 这是str字符串, 可以使用str的方法。
    bin(15)  ---> 0b1111
2、bytes()函数
01、接收的参数,可以是:
    1bytes
    	>>> b
		b'\xab\xcd'
		>>> bytes(b)
		b'\xab\xcd'
    2、数字(接收数字表示bytes数组的大小)
    	>>> bytes(6)
		b'\x00\x00\x00\x00\x00\x00'
    3、列表(列表元素的是在0~255之间的数)
    	>>> bytes([1,123])
		b'\x01{'
    4、字符串
    	传字符串,需要制定编码
    	>>> bytes('11', encoding='utf-8')
		b'11'
3、十六进制字符串转化为bytes
bytes.fromhex() 的参数是  十六进制字符串。
bytes([16])bytes.fromhex('10') 等同.
4、bytes转化为十六进制字符串
01、使用hex()函数(python3.5之后)
	>>> b = bytes.fromhex('abcd')
	>>> b.hex()
	'abcd'
	>>> b
	b'\xab\xcd'
02、使用字符串格式转化(python3.4以下)
	>>> b
	b'\xab\xcd'
	>>> ''.join(['%02x' % i for i in b])
	'abcd'
	>>> ''.join(['%02X' % i for i in b])
	'ABCD'
5、十六进制字符串和int相互转化
01、十六进制字符串转化int
	>>> int('10', 16)
	16
	>>> int('0x10', 16)
	16
02int转化为十六进制字符串
	>>> hex(16)
	'0x10'

6、int和bytes相互转化
01intbytes
	int.to_bytes(整数, 转化为字节数, 大端("big")或小端("little"))
	1、例
		>>> int.to_bytes(123, 3, 'big')
		b'\x00\x00{'
		>>> int.to_bytes(123, 3, 'little')
		b'{\x00\x00'
02bytesint
	int.from_bytes(bytes数据, 大端("big")或小端("little"))
	1、例
		>>> a = int.to_bytes(123, 3, 'big')
		>>> int.from_bytes(a, 'big')
		123
		>>> int.from_bytes(a, 'little')
		8060928
7、二进制字符串和int相互转化
01、二进制字符串转化为int
	>>> bin(16)
	'0b10000'
	>>> int('0b10000', 2)
	16
02int转化为二进制字符串
	>>> bin(16)
	'0b10000'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值