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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yan5108652 中级黑马   /  2013-4-22 23:39  /  2951 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如 char c='5';
     int a;
     a=c-'0';
System.out.println(a);

结果为:5
这个'0'是什么意思啊?
如果不加'0',比如int b=(int) c
System.out.println(b);
结果为:53
谁能帮我解释解释这个'0'代表的意思?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
你好

比如 char c='5';//字符
      int a;         //int变量
      a=c-'0';     //给int初始化值,这里字符运算,自动提升为int.'5'ascii值是  53,'0'的ascii值是 48,53-48=5
System.out.println(a);

结果为:5
这个'0'是什么意思啊?//'0'为字符0,字符运算提升为int,就是对它的ascii值进行操作  48;
如果不加'0',比如int b=(int) c  //把字符'c'强转为int 对应ascii值 53
System.out.println(b);
结果为:53
.......

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
‘0’代表的是字符,可以到Unicode字符编码对应的编码,然后转换成二进制进行转换,数据转换都是用二进制进行转换的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
简单的的说,因为char类型表示一个Unicode码的字节,大小为两个字节,然后int是四个字节,如果是在数据不丢失的情况下,下的是可以自动向大的转型的,所以当进行字符串运算时,字符串会自动转型成int类型,这是就会转换成对应的unicode码数字,'5'对应的是53,'0'对应的是48,所以相减就得到了5

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马