Python 二进制相关操作
程序员文章站
2022-07-15 09:54:47
...
10<<10 # 15.2 ns 仅整数
b'\x5f'.hex() # 111 ns
'香香香'.encode() # 139 ns 仅字符串
binascii.b2a_hex(b'\xb9\x01\xef') # 172 ns 仅字符串
struct.pack('>i',65535) # 211 ns 仅符合C语言标准结构
int('101',8) # 224 ns
bytes.fromhex('ff ff ff') # 231 ns 仅hex字符
int.to_bytes(1111,length=8,byteorder='little') # 260 ns 仅整数
bytearray.fromhex('ff ff ff') # 282 ns 仅hex字符
ctypes.string_at(i,g) # 1.13 µs 可以对内存中任何位置、任何长度进行操作
bin(a) # 3.03 µs 仅整数
bitstring.Bits(b'\x5f') # 10.1 µs
bitstring.Bits(b'\x5f').bin # 16.5 µs
bitstring.Bits(b'\x5f').hex # 29.3 µs
早期接触的bin,虽然是现实的比特位情况, 效率却最低。但int的效率确很高。
一些比特级操作,例如位置信息、颜色信息等存储。通常字节级操作用得多,如果用到比特级,貌似并没有高效的方法。
字节是计算机的最小操作单位,比特是计算机的最小存储单位
我悟了,现在这个内存够用的时代,用字节装X已经很酷了,若用比特装X,画蛇添足,内存占用可能提升了,但是没有好的方法,转换率低,所以用字节就够了!
上一篇: Leetcode#204. Count Primes
下一篇: 二进制相关