Java里进制转换

进制转换

整数扩展

  • 代码表示

    public class Demo3 {
        public static void main(String[] args) {
            //整数扩展
            //进制表示是数字0不是字符o
            //进制 十进制 二进制0b 八进制0 十六进制0x
            int s1 = 10;
            int s2 = 0b10;
            int s3 = 010;
            int s4 = 0x10;//十六进制表示:0~9 A~F
            System.out.println(s1);
            System.out.println(s2);
            System.out.println(s3);
            System.out.println(s4);
        }
    }
    
    

浮点数扩展

  • 银行业务事例
public class Demo4 {
    public static void main(String[] args) {
        //浮点数扩展   银行业务
        float s1 = 0.1f;
        double s2 = 1.0/10;
        System.out.println(s1==s2);
        System.out.println(s1);
        System.out.println(s2);
    }
}
结果:
false
0.1
0.1

说明我们不能使用float与double去处理这类问题!!

  • 浮点数不能比较大小,不准确
public class Demo5 {
    public static void main(String[] args) {
        //浮点数比较
        //为什么不准确
        //表示有限 结果离散 舍入误差 大约值 接近但不等于 不能表示除不尽的数(无理数、分数)
        //最好避免使用浮点数进行比较
        float s1 = 123356655444f;
        float s2 = s1 + 1;
        System.out.println(s1==s2);
    }
}
结果为:
  true

  • 解决方法
使用
  BigDecimal   数学工具类

字符扩展

  • 代码表示
public class Demo6 {
    public static void main(String[] args) {
        //字符扩展
        char c1 = '中';
        char c2 = 'a';
        System.out.println(c1);
        System.out.println((int) c1);
        System.out.println(c2);
        System.out.println((int) c2);
    }
}
结果为:
  中
  20013   //Unicode编码,中在Unicode代表的数字
  a
  97		//Unicode编码,a在Unicode代表的数字
  • 所有的字符本质还是数字!!
  • 强制转换的编码方式为Unicode,每一个字符对应Unicode表中的一个数字,Unicode的大小为2个字节,也就是2的16次方,65536
  • Unicode的编码格式为 U0000~UFFFF
char c3 = '\u0061';  //  \u为转义字符
System.out.println(c3);
结果为:
  a
  • 早期的Excel表,支持最大的输入位数为2的16次方,65536
  • 转义字符
    • \t 制表符
    • \n 换行

boolean扩展

  • 扩充,//两者表示相同 flag ==true与flag意思相同
public class Demo8 {
    public static void main(String[] args) {
        boolean flag = true;
        //两者表示相同 flag ==true与flag意思相同
        if (flag==true){}
        if (flag){}//省略了==true
      //代码要精简易读
    }
}

引用赋值与直接赋值

  • 代码展示

    public class Demo7 {
        public static void main(String[] args) {
            String s1 = new String("hello");
            String s2 = new String("hello");
            System.out.println(s1==s2);//比较s1与s2引用地址值
            String s3 = "hello";
            String s4 = "hello";
            System.out.println(s3==s4);
        }
    }
    结果为:
      false
      true
    

s1与s2是引用对象,他们的引用地址不同,s3与s4,直接赋值,字符串一样就是一样为true!!

单词

  • original 原来的

posted @ 2021-10-14 16:27  ElloeStudy  阅读(147)  评论(0编辑  收藏  举报