gpt4 book ai didi

c++ - XOR 两个二进制字符串 c++

转载 作者:太空狗 更新时间:2023-10-29 23:35:22 26 4
gpt4 key购买 nike

我有两个字符串如下:

STRING1  :        011011110011000

STRING2 : 011001000001000

EXPECTED OUTPUT : 000010110010000

但是,当我尝试使用以下代码对它们进行异或(按位)时,输出为空白。代码:

for(int i = 0; i<15; i++)
{
final_key[i] = STRING1[i] ^ STRING2[i];
cout<<" XOR = "<<final_key[i];
}

如有任何帮助,我们将不胜感激。

最佳答案

您正在尝试一次对 2 个 char 进行异或运算。试试看:

final_key[i] = ((STRING1[i]-'0') ^ (STRING2[i]-'0')) + '0'; 

解释

引用here对于 ASCII 值。

'0' 的 ASCII 值为 48,'1' 的 ASCII 值为 49。48 ^ 49 为 1, 48 ^ 4849 ^ 49 为 0。它们将向 char 返回值 0 或 1,这将代表EOF 字符(如果它是 0)或 SOH 字符(如果它是一个),两者都不能正确输出。

因此,在执行 XOR 操作之前,您可能希望将每个 char 转换为一个位(0 或 1)。因此,您可以从每个 char 中减去 '0' 以获得数字的数值,进行异或运算,然后加回 '0' 获得正确的输出

关于c++ - XOR 两个二进制字符串 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39394285/

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