黑马程序员技术交流社区
标题:
毕老师视频中进制转换有个地方不懂,求解?
[打印本页]
作者:
吹血弄花
时间:
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