c++转义字符小问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 21:01:30
int s='\017';
cout<<s;//s=15;这是八进制数赋给s输出十进制,明白
int s='\018';
cout<<s;//我的机器输出s是312,这个怎么算?

"\018'相当于一个字符串了,计算是这样的:
'\017'满足八进制,所以计算的时候就按照了八进制,得到15
'\018'不满足任何进制,按照字符串赋值,所以有如下值:
'\018'=0*65535+1*256+8=312;
你可以按照这种算法来进行其他测试
如'\028'=568 '\118'这个你自己测试一下

不清楚 但是八进制数里没有8啊 这是关键