java基础知识(运算规则)

33 篇文章 0 订阅
31 篇文章 0 订阅

java基础知识(运算规则)

一. 运算规则
在运算中(切记:只有7种基本数据类型,无boolean型)
1.自动类型提升
byte–>short–>int–>long–>float–>double
容量大的与容量小的数据类型的变量运算时,结果自动提升为较大容量的数据类型(但是前三个除外,byte,short,int)。例如

public class Main {

    public static void main(String[] args) {
        byte a=5;
        int  m=129;
        int n=a+m;
        System.out.println(n);
    }
}

byte比int容量更小,所以结果用int型的。这是正确的!接下来是一个错例:

public class Main {

    public static void main(String[] args) {
        byte a=5;
        short  m=129;
        short n=a+m;//错误的
        System.out.println(n);
    }
}

这个运行会出现错误,因为对于byte ,short ,int之间相互运算时,结果都用int型。(包括byte和byte,short和short,的计算,即自身与自身)大家可以自己尝试我没举例子的。
如:

public class Main {

    public static void main(String[] args) {
        byte a=5;
        byte m=3;
        byte n=a+m;//依旧需要改成int型的,否则报错
        System.out.println(n);
    }
}

有人会问,那浮点型和整型直接可以计算吗?
如下例:

public class Main {

    public static void main(String[] args) {
        float a=1.559f;
        short  m=129;
        float n=a+m;
        System.out.println(n);
    }
}

显而易见,这是可以的,但是我们必须注意结果的值不在用int型的类型,而是用float型,用int型会弹出来:"java: 不兼容的类型: 从float转换到int可能会有损失"得不到结果。所以注意灵活变化。结果会和一开始定义的a值的小数位数相同。
最后,可能小伙伴们会好奇char型怎么运算?这就涉及到一个字母与数字的转换关系了(ASCLL码感兴趣可以了解一波),A是65开始,往后每个字母按照英文字母表推就可以,a是97,同理推就完事。还是给个例子叭:

public class Main {

    public static void main(String[] args) {
        float a=1.559f;
        char m='b';
        float n=a+m;
        System.out.println(n);
    }
}

结果是99.559,因为b对应98。
2.强制类型转化
上一个自动类型是直接在结果处选择适当的数据类型就完事了,可以想成自动挡,而反推则比较烦,到那时还是可以的(即自动提升的逆运算),但可能会发生截断,即位数丢失!=四舍五入。下例就是比较简单的一种:

public class Main {

    public static void main(String[] args) {
        byte a=5;
        float i=(float)a;
        System.out.println(i);
    }
}

方法:先定义需要被转化的数据类型,然后定义目的数据类型(一定要加括号,括号后跟要变的数)
对于char型的,也可以用逆转化,即如下:(以例说话,哈哈哈)

public class Main {

    public static void main(String[] args) {
        byte m=97;
        char i=(char)m;
        System.out.println(i);
    }
}

这就将数字转化成了字母。一定注意格式!!!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值