【发布时间】:2015-01-22 12:35:15
【问题描述】:
int main() {
std::string original = "Hello world";
std::string decrypted;
std::string encrypted;
char key = 'x';
cout << "Original string: " << original << endl << endl;
for(int i=0;i<original.size();i++)
{
encrypted += original[i] ^ ((int)key + i) % 20;
}
cout << "Encrypted string: " << encrypted << endl << endl;
cin.get();
return 0;
}
我在 youtube 上找到了这个加密程序,我不知道这行代码是做什么的-->encrypted += original[i] ^ ((int)key + i) % 20; .这个 ^ 运算符是什么,它到底做了什么?我认为它仅用于将数字提高到幂。此外,当我将此行更改为 encrypted = encrypted + original[i] ^ ((int)key + i) % 20;我收到错误“与 std::operator 中的运算符不匹配”,这是为什么呢?
抱歉我的英语不好,提前谢谢。
【问题讨论】:
-
这是异或函数。
-
谷歌“C++ 运算符”,你会找到答案。这里的问题需要在发布之前进行研究。
-
虽然 ^ 本身很难搜索,但 @meagar 的 Google-fu 还是不错的。
-
我对这些问题感到很痛苦。一方面他们可以用谷歌在一秒钟内回答,但他们很容易给你积分!
-
@PaulDraper 不,我的意思是直接搜索"C++ operators"。您会在nice little lists 中获得所有 个,它们会准确地告诉您每个人的工作,通常带有指向更多详细信息的链接。
标签: c++