以下语句打印'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?
答案 0 :(得分:5)
1857 in binary 0111 0100 0001
Char会截断那些8
位,0100 0001
的二进制位是65
,字符为'A'