A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程宏志 中级黑马   /  2012-10-31 21:37  /  1707 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
    public static void main(String []args)
    {
        int b='\101';
        System.out.println("b="+b);
     }
}
输出的结果是65,这是为什么呢?在计算机中运行的不是二进制吗?那样计算的话转化成整形的话应该是b=5的?
求大侠给解释?谢谢!

6 个回复

倒序浏览
本帖最后由 刘伟平 于 2012-10-31 22:16 编辑

直接输出  '\101'  是A

'\102' 是 B
'\103' 是 C

System.out.println('\101' == 0101); // true

回复 使用道具 举报
本帖最后由 刘伟平 于 2012-10-31 22:16 编辑

这是八进制, \101 转换成十进制就是 65,所以是 A 。

因为'\108' 就会报错了,但是'\444'这样就不会报错,我就知道这是8进制了,{:soso__10837308609143446749_3:}

JAVA中转义字符:

1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
      \0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
     \u0000:空字符
3.特殊字符:就3个
      \":双引号
     \':单引号
     \\:反斜线
4.控制字符:5个

\' 单引号字符

\\ 反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格
回复 使用道具 举报
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。
回复 使用道具 举报
Java中八进制转义序列:'\000'~'\377'
'\101'转换成十进制就是65
回复 使用道具 举报
刘伟平 发表于 2012-10-31 22:04
这是八进制, \101 转换成十进制就是 65,所以是 A 。

因为'\108' 就会报错了,但是'\444'这样就不会报错 ...

这些是固定的格式还是有原理依据而来的呢?
回复 使用道具 举报
程宏志 发表于 2012-11-1 20:45
这些是固定的格式还是有原理依据而来的呢?

固定格式,还能怎样?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马