当我写代码
string s="000000";
string d="111111";
int x=(int)s[0]&(int)d[0];
char y= (char)x;
cout <<y << endl;
Run Code Online (Sandbox Code Playgroud)
它工作得很好,给我的答案是 0。
但是,如果我在上面的代码中用“^”(XOR)替换“&”,则给我的输出只是空白。
为什么会发生这种情况?
笔记-
(int)s[0]^(int)d[0],((int)s[0]+(int)d[0])%2但结果没有任何改变。我试图引入另一个变量,看看是否能解决问题。但又什么都没有改变。
string s="000000";
string d="111111";
int x=(int)s[0]^(int)d[0];
int z=x;
char y= (char)z;
cout <<y << endl;
Run Code Online (Sandbox Code Playgroud)假设您的系统使用 ASCII 字符编码(或扩展 ASCII 或 UTF-8)。
在ASCII中,字符'0'用数值48(110000?)表示,'1'用数值49(110001?)表示
110000?和 110001?= 110000?代表'0'。
110000?异或 110001?= 000001?这是一个不可打印的字符,表示标题的开始。