不同进制整数的表示

  • 十进制整数,如:99, -500, 0
  • 八进制整数,要求以 0 开头,如:015
  • 十六进制数,要求 0x 或 0X 开头,如:0x15
  • 二进制:要求 0b 或者 0B 开头,如:0b11

数据类型的表示范围

下图是各种整数数据类型的表示范围:

JavaSE-10-1

这里解释一下这些表示范围是怎么算的:

byte 类型为例,在 Java 中,byte 类型的数据使用补码表示,其中最高位为符号位。所以可以表示的最大值为01111111,十进制为127,可以表示的最小值为10000000,二进制为-128。这样就可以求出它数据范围了。

浮点类型常量和变量

浮点数类型常量

浮点数类型常量有两种表示形式,分别是十进制表示法和科学记数法。

十进制表示法例如3.14、314.0、0.314。

科学记数法例如314e2、314E2、314E-2,E的大小写没有区分

浮点数类型变量

float 类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float 类型的精度很难满足需求。而 double 表示这种类型的数值精度约是 float 类型的两倍,又被称作双精度类型,绝大部分应用程序都采用 double 类型。

float 类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为 double 类型。也可以在浮点数值后添加后缀D或者d, 以明确其为 double 类型,不过一般还是省略。

JavaSE-10-2

有效数字指的是==从左开始第一个不为0的数到最后一个数==。

一般要尽量避免浮点类型之间的比较,因为计算机运算都是通过二进制进行计算的,而很多小数无法准确地转换为二进制,所以在底层其实是不一样的。