进制与强制转换

进制


        //进制    二0b     十       八0      十六0x

        int i1 = 010;       //八进制
        int i2 = 0b100;     //二进制
        int i3 = 0x100;     //十六进制

        System.out.println(i1);     //8
        System.out.println(i2);     //4
        System.out.println(i3);     //256

浮点型错误

        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f==d);       //false

        float d1 = 46546321324656f;
        float d2 = d1+1;
        System.out.println(d1==d2);     //true

        //比较浮点数不用float
        //用 BigDecimal  数学工具类

强制转换和转义字符

        char c1 = '中';
        System.out.println(c1);
        System.out.println((int)c1);//20013
        //  A==65  a==97

        char c2 = '\u0061';
        System.out.println(c2);     //a  ‘\’u表示转义十六进制字符

        int c3 = 0x0061;
        System.out.println(c3);     //97  0x表示十六进制整数

        //转义字符
        // \t  制表符
        System.out.println("aaaa\tbbbb\n");   //aaaa	bbbb

int i = 128;
byte b = (byte) i;//内存溢出

//强制转换 (类型)变量名 高-->低

强制转换


System.out.println(i);//128
System.out.println(b);//-128

//自动转换 低-->高

/*
1.不能对布尔转换
2.不能把对象类型转换为不相干类型
3.高转低 强制
4.转换后可能出现内存溢出或者精度问题
*/

System.out.println("================");
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45

System.out.println("================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char) d);

System.out.println("================");

//数较大时注意溢出 数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = moneyyears; //-1474836480 溢出
long total2 = money
years;//溢出 在转换之前就已经溢出
long total3 = (long) money*years;
System.out.println(total3);

posted @ 2024-03-01 16:11  X~ming  阅读(50)  评论(0)    收藏  举报