在java中的字符赋值中,有这么一个赋值语句,z='\117';

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:41:02
在java中的字符赋值中,有这么一个赋值语句,z='\117';这是什么意思啊?输出结果貌似是英文大写字母“O”,这是怎么回事啊?谢谢··!
大家看看这里http://wiki.cprogram.cn/index.php/ASCII就知道ASCII中的英文大写字母“O”所对应的不是“117”啊?
“ oatn - 经理 四级 ”这位仁兄,你说:“\117 只是八进制的数, 转换为十六进制4F,所以这个字符就是大O ”,但我没有定义那个为八进制的数啊,并且我也没有把它转换为十六进制啊?可是为何出现你说得这种八进制和十六进制的状况呢?谢谢···!

大致是这样的:
用‘’括起来的是char型变量。大写字母O的ASCII码是117,至于“\”是转义符,象'a'、'b'、'c'、‘d'这样的字符型变量不需要转义符。

\117 只是八进制的数, 转换为十六进制4F,所以这个字符就是大O
有程序为证
public class Test{
public static void main(String[] args) {
char z='\117';
System.out.println(z == 'O');
}
}

'\117'是8进制数

'\117' = 0x4f = 79 = 'O'
-----------------------------------

'\117'这样以'\XXX'表示的就是8进制数,语法规定的。

没错是ascii字符编码

如果输出是O,那可能是ACSII码吧