gpt4 book ai didi

python - 将字符串转换为二进制,然后异或二进制

转载 作者:行者123 更新时间:2023-12-01 01:09:00 28 4
gpt4 key购买 nike

所以我尝试使用以下方法将字符串转换为二进制文件,然后对二进制文件进行异或

def string_to_binary(s):
return ' '.join(map(bin,bytearray(s,encoding='utf-8')))

def xor_bin(a,b):
return int(a,2) ^ int(b,2)

当我尝试运行 xor_bin 函数时,出现以下错误:

Exception has occurred: exceptions.ValueError
invalid literal for int() with base 2: '0b1100010 0b1111001 0b1100101 0b1100101 0b1100101'

我看不出这里出了什么问题。

最佳答案

bin 在这里不好;它不会填充到八位数字(因此,每当高位为 0 时,您就会丢失数据对齐,并将该丢失左侧的所有位误解为比应有的幅度低) ,并且它添加了您不需要的 0b 前缀。 str.format 可以通过零填充和省略 0b 前缀来解决这两个问题(我还删除了连接字符串中的空格,因为您不希望在结果):

def string_to_binary(s):
return ''.join(map('{:08b}'.format, bytearray(s, encoding='utf-8')))

有了这个,string_to_binary('byeee')得到你想要的'0110001001111001011001010110010101100101',这就是你想要的,而不是'0b1100010 0b1111001 0b1100101 0b11 00101 0b1100101' 这显然不是一个(单个)有效的以 2 为基数的整数。

关于python - 将字符串转换为二进制,然后异或二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034041/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com