package com.exmaple;
/**
* 整型运算
*/
public class NumericOperation {
public static void main(String[] args) {
/**
* 整型运算:
* 1、byte short char类型进行运算时,总是转成int后在运算,原因是为了防止数据溢出
* 2、两个不同类型进行运算 总是转成最大类型在进行运算 所以运算结果跟最大类型一致
* long + int = long
* float + double = double
* 3、十进制数最终都会转化为二进制数进行运算,便可以解释数据溢出现象
*/
byte a = 1;
short b = 2;
// short c = a + b; 编译错误因为a+b的结果是int类型
double a1 = 0.1;
float b1 = 0.2F; //java中浮点型默认为double,所以加F显式转换
// float c1 = a1 + b1; 编译错误 因为a1 + b1结果为double类型
/**
* 数据溢出现象
*/
byte a2 = 127; //二进制表示: 01111111
byte b2 = 1; //00000001
byte c2 = (byte)(a2 + b2); //10000000
//因为第一位是表示符号0为正,1为负
//把C2按位取反在加1后得到绝对值128,加上符号,所以最终结果是-128
System.out.println(c2); //-128
/**
* 强转可能会丢失数据
*/
//二进制表示: 00000000 00000000 00000000 10111101
int a3 = 189;
//因为强转成一个字节的byte类型,所以b3的二进制表示:10111101
//强转后的b3为负数,按位取反加1得出的绝对值是01000011,加上符号就是-67
byte b3 = (byte)a3;
System.out.println(b3); //-67
}
}
Java基础day02 --整型运算
于 2024-01-04 10:51:01 首次发布
本文详细讨论了Java中的整型运算规则,包括不同类型之间的隐式转换、数据溢出现象以及强转可能导致的数据丢失。通过实例演示,解释了byte、short、int、long和浮点数运算的细节。
摘要由CSDN通过智能技术生成