Java基本数据类型拓展

Java基本数据类型拓展

1、整数拓展:

1.1进制
  • 二进制:用0b开头表示,使用‘0’和‘1’表示

  • 十进制:使用‘0’~‘9’表示

  • 八进制:用0开头表示,使用‘0’~‘7’表示

  • 十六进制:用0x开头表示,使用‘0’-‘9’,以及字符‘A’-'F’来表示16个值(其中字符’A‘~’F’可以为大写,也可以为小写)

  •  int i = 10;
     int i1 = 0b10;//二进制
     int i2 = 010;//八进制
     int i3 = 0x10;//十六进制
     System.out.println(i);
     System.out.println(i2);
     System.out.println(i3);
     结果:
     10
     2
     8
     16
    
1.2进制之间的转换
  • 十六进制数转二进制数:
    通过展开每个十六进制数,将它转换位二进制数(一对一)
    例如:

    十六进制173A4C
    二进制000101110011101001001100
  • 二进制数转十六进制数:
    首先把二进制数从右向左分为每4位一组,每一组对应一个十六进制数。
    注意:当最左边一组数的个数没有4个,则在前面补0。
    例如:

    二进制1111001010110110110011
    十六进制3CADB3
  • 十进制数转十六进制数:

    反复地用16除十进制数。例如

    314156=19634*16+12
     19634=1227*16+2
      1227=76*16+11
        76=4*16+12
         4=0*16+4
    取最后一位:
    十六进制数为:0x4CB2C
    

    注意:

    1、要把类似‘10’-‘15’数字写成十六进制的’A’~‘F’

    2、读数要从最后一行开始倒着读。

2、浮点数拓展

  • 浮点数存在精度丢失问题

    • float f = 0.1f;
      double d = 1.0/10;
      System.out.println(f==d);
      float d1 = 1234567214325354f;
      float d2 = d1+1;
      System.out.println(d1==d2);
      结果:
      false
      true
      
  • 原因:

    • 浮点数的存储位数是有限,表示的数是离散,且存在舍入误差。它所表示的数只是用大约、接近而不是等于。
    • 在进行数据比较时最好不用浮点数,浮点数更加不适合运用在金融计算领域,但是可以用BigDecimal(数学工具类)

3、字符拓展

  • 强制转换:
    • 如:char类型转换为int类型

    • (int)字符变量名

    • 所有字符本质还是数字

    • 转义字符:

      • \t:制表符

      • \n:换行

      • \f:换页

      • \r:回车

      • \\:代表一个反斜杠’\’

      • \’:代表一个单引号

      • \’’:代表一个双引号

      • \?:代表一个问号

      • \0:空字符(NULL)

      • \ddd:1到3位八进制数所代表的任意字符

      • \xhh:十六进制所代表的任意数

4、布尔值拓展

boolean flag = true;
if (flag == ture);
if (flag);//两条if语句的结果一样,但是第二条比较精简
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值