COR中的XOR运算符和char

时间:2015-01-10 17:08:01

标签: c++

在C ++中给出以下代码片段:

char a = 0x0a;
char b = 0x80;
char c = a ^ b;

屏幕背后会发生什么?当我使用cout输出c时,没有输出。 char a和char b是否会转换为二进制格式?什么是c的格式?

2 个答案:

答案 0 :(得分:4)

c将是0x8a,通常不是可打印字符,请参阅(例如)http://www.unicodetools.com/unicode/img/latin-iso-8859-1.gif

(既不是0x0a(换行)也不是0x80)

cout将打印与c参数的c值对应的字符,这就是你没有看到任何输出的原因。

您可能希望使用printf打印c的数值,或将c转换为int。

您可能也对此问题感兴趣,该问题讨论了在C:Is there a printf converter to print in binary format?

中打印二进制数

答案 1 :(得分:1)

计算机中的所有数字都是二进制格式。

0x0a,a.k.a。10(十),表示为

  

1010

0x80,a.k.a。128,表示为

  

10000000

如果你和那些人相比,你得到138。

显然,如果您打印char 138,您的终端无法输出任何有用的内容。