1857年是A的另一个字符代码吗?

时间:2014-02-26 12:42:34

标签: c++ character-encoding ascii fstream

以下语句打印'A'。为什么? “A”的ASCII代码不是65?

cout<<char(1857);

1857年是否会与演员一起变成65岁?我正在使用int_type get()方法从fstream中读取字符,并为'A'获取奇怪的值,如1857,为'B'获取1858等等。

这是我的代码:

int ch;
while(file) // file is fstream.
{
  ch = file.get();
   cout<<char(ch)<<":"<<ch<<" ";  /*prints A:1857 B:1858 C:1859*/
}

注意:将int转换为char将其截断为8位,因此将1857转换为65.但是为什么get()方法返回1857而不是65?

1 个答案:

答案 0 :(得分:5)

1857 in binary 0111 0100 0001

Char会截断那些8位,0100 0001的二进制位是65,字符为'A'