2.基本数据类型

1.数据类型
1.1基本分类

​ 在java语言中将数据类型分为两大类:

​ (1)基本数据类型

byte、short、int、long、float、double、char、boolean

​ (2)引用数据类型

​ 数组、类、接口、枚举、标注等

1.2常见的进制

​ 在日常生活中采用十进制进行数据的表示,逢十进一,每个数字的权重:100 、101 ……

​ 在计算机中采用二进制进行数据的表示,逢二进一,每个数字的权重:20 21 ……

1.3进制之间的转换

​ (1)正十进制转换为二进制的方式

​ a.除二取余法,让十进制整数不断地除以2然后取余数,知道商为0时将余数逆序排列;

​ b.拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则0

​ 如: 30 => 16+8+4+2

​ 0 0 0 1 1 1 1 0

​ 128 64 32 16 8 4 2 1

​ (2)正二进制转换为十进制的方式

​ a.加权法,让二进制的每个数字乘以当前数位的权重再累加起来。

​ (3)负十进制转换为二进制的方式

​ a.将十进制的绝对值转换为二进制,然后进行按位取反再加1.

​ 如:

​ -30 =》 将绝对值转换为二进制:0001 1110

​ =》 按位取反: 1110 0001

​ =》 再加1: 1110 0010

​ (4)负二进制转换为十进制的方式

​ a.先减1,再进行按位取反,采用加权法合并为十进制整数后添加负号

扩展:原码、反码、补码的概念。

练习:

​ 将66和80转换为二进制;

​ 将-66和-80转换为二进制;

​ 将0101 1110 和 0011 1101 转换为十进制(正);

​ 将1010 1100 和 1110 0111 转换为十进制(负);

​ (5)二进制转换为八进制的方式

​ a.二进制三位 合并为 八进制一位,并使用0作为八进制的前缀;

​ 如:

​ 010 110 (二进制)=> 026 (八进制)

​ (6)八进制转换为二进制的方式

​ a.将每一位八进制拆分为三位二进制,并使用0b作为二进制的前缀(jdk1.7新特性)

​ 如:

​ 074 (八进制)=> 0b 111 100 (二进制)

​ (7)二进制转换为十六进制的方式

​ a.将每四位二进制合并为一位十六进制,并使用0x作为16进制的前缀;

​ 如:

​ 0101 1100 (二进制) => 0x 5c (十六进制)

​ (8)十六进制转换为二进制的方式

​ a.将每一位十六进制拆分为四位二进制,并使用ob表示二进制;

​ 如:

​ 0x a3 (十六进制) => 0b 1010 0011(二进制)

1.4单个字节表示的整数范围(重重之中)

​ 在计算机的底层是采用二进制表示数据的,并使用最高位(左边)作为符号位,0代表非负数,1代表负数,而单个字节表示8位二进制位,具体整数范围如下:

​ 非负数范围: 0000 0000 ~ 0111 1111 为0~127

​ 负数范围 : 1000 0000 ~ 1111 1111 为-128~ -1

综上所述:

​ 对于单个字节来说,所能表示的整数范围是:-128 ~ 127 。即 -27 ~ 27 -1

1.5整数类型

​ 在Java语言中用于描述整数数据的类型有:byte、 short、 int 、long,推荐使用int类型。

​ 其中byte类型在内存空间占1字节,因此表示范围为:(-27 ~27 -1) -128~127

​ 其中short类型在内存空间占2字节,因此表示范围为:(-215 ~215 -1)

​ 其中int类型在内存空间占4字节,因此表示范围为:(-231 ~231 -1)

​ 其中long类型在内存空间占4字节,因此表示范围为:(-263 ~263 -1)

​ 在程序中直接写出的整数数据叫做直接量/字面值/常量,如:66,该数据默认为int类型。若希望在程序中表达更大的直接量,则需要在直接量的后面加l或者L,推荐L表示long类型的直接量。

/*编程实现整数类型的使用*/
public class TestInt{
    public static void main(String[] agrs){
        byte b1 = 10;
      //  byte b1 = 1000;//TestInt.java:4: 错误: 不兼容的类型: 从int转换到byte可能会有损失
        System.out.println("b1 = "+ b1);//b1 = 10
        System.out.println("--------------");
        short s1 = 1000;
        System.out.println("s1 = "+ s1);  //s1=1000
        long l1 = 1000000000L;
        System.out.println("l1 ="+ l1);//l1=1000000000
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MelodyYN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值