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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王红霞 中级黑马   /  2012-7-20 18:59  /  1565 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王红霞 于 2012-7-21 16:21 编辑
  1. import java.io.*;
  2. class  A
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 InputStream in=System.in;
  7.                
  8.                 System.out.println((int)'\r');
  9.         }
  10. }
复制代码
==============================================
System.out.println('\r'+0);System.out.println((int)'\r') 打印的结果相同,是因为有了+0-----是为了数据提升?如果是&上一个数提升数据我懂,加法是如何将字符转换成int数据类型的呢? 麻烦哪位不嫌弃这个问题弱智的 给解惑一下红色部分  谢谢
  1. import java.io.*;
  2. class  A
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 InputStream in=System.in;
  7.                
  8.                 System.out.println('\r'+0);
  9.         }
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

7 个回复

正序浏览
芦曦 发表于 2012-7-21 13:55
字符'\r'在内存里占2个8位,0是整数,占4个8位。当出现'\r'+0时,那么'\r'它的类型会提升,也变成4个8位, ...

嗯知道了 谢谢
回复 使用道具 举报
芦曦 中级黑马 2012-7-21 13:55:10
7#
本帖最后由 芦曦 于 2012-7-21 13:57 编辑

字符'\r'在内存里占2个8位,0是整数,占4个8位。当出现'\r'+0时,那么'\r'它的类型会提升,也变成4个8位,而\r是回车符,字符'\r'在ASCII表里对应的数字是13,类型提升时会体现出ASCII里对应的数字,所以'\r'+0打印出来的结果就是13.

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
Java自动将参与数学运算的char转换成int,如果你想知道具体实现步骤,可以查看JDK查看具体的实现步骤
回复 使用道具 举报
就好像要同时称重一个100g和1kg的物体,你就必须拿一个能称1kg的称来称,如果你那只能称100g的称来称,肯定没法
回复 使用道具 举报
丁二跃 发表于 2012-7-20 19:28
byte  short char 在参与数学运算时会自动转换 int……

真的吗?这个我还真不知道……又长了知识点了:handshake
回复 使用道具 举报
char类型 16位,int类型32位,int类型 覆盖了char类型的取值范围
回复 使用道具 举报
byte  short char 在参与数学运算时会自动转换 int……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马