黑马程序员技术交流社区

标题: 字符转化成整数的疑问 [打印本页]

作者: 程宏志    时间: 2012-10-31 21:37
标题: 字符转化成整数的疑问
class Demo
{
    public static void main(String []args)
    {
        int b='\101';
        System.out.println("b="+b);
     }
}
输出的结果是65,这是为什么呢?在计算机中运行的不是二进制吗?那样计算的话转化成整形的话应该是b=5的?
求大侠给解释?谢谢!
作者: 刘伟平    时间: 2012-10-31 21:49
本帖最后由 刘伟平 于 2012-10-31 22:16 编辑

直接输出  '\101'  是A

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

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


作者: 刘伟平    时间: 2012-10-31 22:04
本帖最后由 刘伟平 于 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 退格
作者: 王永荣    时间: 2012-10-31 22:13
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。
作者: 林剑    时间: 2012-10-31 22:16
Java中八进制转义序列:'\000'~'\377'
'\101'转换成十进制就是65
作者: 程宏志    时间: 2012-11-1 20:45
刘伟平 发表于 2012-10-31 22:04
这是八进制, \101 转换成十进制就是 65,所以是 A 。

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

这些是固定的格式还是有原理依据而来的呢?
作者: 刘伟平    时间: 2012-11-1 21:14
程宏志 发表于 2012-11-1 20:45
这些是固定的格式还是有原理依据而来的呢?

固定格式,还能怎样?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2