def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
bits = bin(int.from_bytes(text.encode(encoding, errors), 'big'))[2:] #<-------|
return bits.zfill(8 * ((len(bits) + 7) // 8)) #<------|
def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
n = int(bits, 2) ##<-------|
return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '\0' ##<-------|
如果有人可以向我解释这两个功能(我从str更改为二进制并反转),我很想知道,但我不明白他在两个函数的secound和3rd行中都做了什么/ p>
答案 0 :(得分:0)
让我们对其进行分析:
然后在返回中:
在第二个功能中:
n.to_bytes():将整数转换为解码函数接受的字节格式
decode():将字节符号转换为字符串(指定为“ utf-8”)
理解这一系列数据操作的最好方法是,如果您一个一个地使用所有给定的函数。这样肯定会有意义。