我是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]行中的标记..
答案 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