You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何对单个8位二进制字符串做XOR运算得到所有可能组合

实现思路与代码

你需要的所有XOR运算组合,本质是将输入的8位二进制字符串对应的单字节值,和0x00到0xff共256种可能的8位值逐一做异或运算,输出对应结果即可,实现逻辑非常简单:

完整可运行代码

def get_all_xor_combinations(input_bin: str):
    # 校验输入合法性
    if len(input_bin) != 8 or not all(c in ("0", "1") for c in input_bin):
        raise ValueError("输入必须为仅包含0/1的8位二进制字符串")
    # 将输入转为整数方便运算
    input_byte = int(input_bin, 2)
    result_list = []
    # 遍历所有8位可能值做异或
    for key in range(256):
        xor_result = input_byte ^ key
        # 异或结果转为补前导零的8位二进制字符串,需要十六进制的话改成f"{xor_result:02x}"即可
        result_bin = f"{xor_result:08b}"
        # 元组存储格式:(异或用的key二进制值, 异或结果二进制值)
        result_list.append((f"{key:08b}", result_bin))
    return result_list

# 测试示例
if __name__ == "__main__":
    test_input = "10101010"
    all_combinations = get_all_xor_combinations(test_input)
    # 打印前5组示例,需要全部输出直接遍历all_combinations即可
    for key, res in all_combinations[:5]:
        print(f"{test_input} XOR {key} = {res}")

格式调整说明

  • 如果不需要存储参与运算的key,只需要最终异或结果,直接收集result_bin到列表即可
  • 如果需要输出整数格式的结果,不需要做二进制转换,直接存xor_result即可
  • 输入如果带0b前缀,int()方法会自动识别处理,只需要确保去掉前缀后是8位即可

所有运算组合一共256组,符合8位单字节的所有取值范围,没有遗漏情况


内容的提问来源于stack exchange,提问作者DyingInCS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:06:01