黑马程序员技术交流社区

标题: 毕老师视频中进制转换有个地方不懂,求解? [打印本页]

作者: 吹血弄花    时间: 2014-3-7 12:26
标题: 毕老师视频中进制转换有个地方不懂,求解?
System.out.println(tmep-10+'A')这句输出为C到底怎么来的?毕老师说2+A=67,转为字母就是C什么意思啊?
作者: 混蛋哥    时间: 2014-3-7 12:46
本帖最后由 混蛋哥 于 2014-3-7 12:54 编辑

System.out.println(tmep-10+'A') //这句输出的应该是个数字吧?相当于tmep-10+65
System.out.println((char)(65+2));  //这句输出结果是C
System.out.println((int)('C'));  //这句输出的是67

26个大小写字母和其它字符在ASCII编码中都有定义,可以通过char 或者int进行数字字母间强转,你可以看看ASCII编码


作者: nicholyx    时间: 2014-3-7 13:01
System.out.println(tmep-10+'A')
假如temp=12,那么就是2+'A';
2是int类型,'A'是字符类型,运算时char自动类型提升为int ,
运算时根据 char 的ASCII与int进行相加,'A' 的ASCII是65,
所以2+'A' ==>2+65=67
如果要转换成字符,需要强制转换,即 (char)(2+'A')  --->  C
作者: 吹血弄花    时间: 2014-3-7 13:05
标题: 已解决
本帖最后由 吹血弄花 于 2014-3-7 13:10 编辑

哦哦 懂了,谢谢




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