【问题标题】:C++ : what is this operator ^? [duplicate]C++:这个运算符 ^ 是什么? [复制]
【发布时间】: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++


【解决方案1】:

在 C++ 中,^ 是异或或异或函数。你可以阅读更多关于它的信息here

【讨论】:

  • 很高兴看到至少有一个人不想再耕种
【解决方案2】:

这是XOR function。它通常用于散列方法中,用于根据对象的属性获取唯一值。

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 2013-07-30
    • 2021-03-28
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多