XOR&#39的字符数组

时间:2015-12-02 12:50:26

标签: c arrays ascii xor

我是C编程和使用devc的初学者。所以我试图用另一半对XOR的一半进行异或。我创建了一个3018个单词的数组,它们被视为字符,然后尝试对它们进行异或。从环顾四周来看,我尽我所能,但它无法正常工作,我也无法理解如何完成异或......

如果我有3018个数字的数组,我将前1509个数字与第二个1509数字进行异或运算..我怎么能这样做?

int main(void)
{
int i = 0;
char message[3018] = {10, 117, 117, 10, 10, 10, 10, 10..}; 
char xor[1509];

    for(i=0; i<1510;i++)


xor[i] = (char)(message[i] ^ message[i+1509]);

// Enter your code here...

while(1);
return 0;
}

重要提示:我切断了

char message[3018] = {10, 117, 117, 10, 10, 10, 10, 10..}; 

行,因为显然有3018个字输入,我无法全部显示所以我只是用...

上面的代码中存在一些问题,例如。
在char消息[3018]行中,在xor令牌之前表示意外的不合格ID? 在&#39; xor&#39;之前的意外主要表达xor [i]行中的标记..

1 个答案:

答案 0 :(得分:1)

改变:

for(i=0;i<1510;i++)
   xor[i] = (char)(message[i] ^ message[i+1509]);

for(i=0;i<1509;i++)
  xor[i] = (char)(message[i] ^ message[i+1509]);

应该为您提供正确的XOR输出。

将这些数字转换为字符可能会导致输出字符未知,例如k Xr2是我获得的输入char message[10] = {10, 117, 117, 10, 10, 10, 10, 10, 90, 4};。我希望你知道你在做什么。

我们可以改为使用其他数组名称,请:) 将所有xor替换为xyznotkeyword