c++ - 异或运算符 C++

标签 c++ encryption xor

这里是一个简单的问题。 XOR 运算符 (^) 有问题。我可以很好地对整数进行异或并得到正确的结果;但是,当对两个字符进行异或运算时,不会返回任何内容:

int main() {
    char a = 'a';
    char b = 'b';
    char c;

    c = a^b;
    cout << c << endl;
}

没有任何反应。无输出。我在这里做错了什么。我正在尝试使用它来对具有给定 key 的字符串进行 XOR 加密,但此操作存在问题。我想我可以获取 ASCII 值并将其转换为相应的字符,但此工具将用于加密文件和纯文本,因此我想不惜一切代价避免这种情况。

最佳答案

'a' ^ 'b' (0x61 ^ 0x62) 结果为 3,这是一个不可打印的字符, ASCII ETX,因此没有打印输出。

关于c++ - 异或运算符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504444/

相关文章:

java - 在 Java 中,具有三个 true 输入的 XOR 返回 true。为什么?

C++ ifstream 文件已打开但失败

C++ 子类 - 重用重载运算符?

c++ - 根据用户输入创建结构

C++异常继承歧义

ms-access - MS Access VBA替代密码加密/解密

c - OpenSSL - 找到 AES key

java - PBEKeySpec 的盐、迭代计数和 key 长度的默认值

c++ - C 或 C++ 标准库中是否有逻辑( bool )XOR 函数?

php - 确保给定列表中只有一个 bool 值是真的?