Java零基础21-Java 的整型/浮点型字面量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shilishili/article/details/88394617

阅读完后:

  • 什么是整型字面量【掌握】
  • 什么是二进制、八进制、十进制、十六进制以及它们的转换【了解】
  • 什么是浮点字面量【掌握】
  • 浮点字面量的表现形式【掌握】
  • 以下划线分隔的字面量【掌握】

前言

数字字面量可以分为整型字面量和浮点型字面量,当我们需要这些类型的变量或者常量赋值时,我们如何表示这些数字的值呢?

整型字面量

为一个整型变量赋值,可以使用二进制、八进制、十进制、十六进制表示整型字面量,比如 100、200、0b11000、0123、0x1590 这些就是整型字面量。通常十进制是编程中用的最多的记数系统。接下来,我们开始学习这些整型字面量,

二进制

二进制是以 2 为基数的计数系统,每位取值是 0 或 1 的 2 个数值,对计算机来说,由 0 和 1 组成的值最简单,也是重要的计算部分。

在二进制中,逢二进一,二进制字面量必须以 0B 或 0b 开头,每位称为一个比特,8 比特为一个字节。例如:从 0~5 开始依次为0、1、10、11、100、101。0b101 表示十进制值为 5、0b11111111 表示十进制值为 127。

二进制转换为十进制

0b0、0b1、0b10、0b11、0b100、0b101 分别表示十进制数 0、1、2、3、4、5,计算方式如下:
0b0 转换为十进制数:0 x 2 0 ^0 = 0
0b1 转换为十进制数:1 x 2 0 ^0 = 1
0b10 转换为十进制数:1 x 2 1 ^1 + 0 x 2 0 ^0 = 2
0b11 转换为十进制数:1 x 2 1 ^1 + 1 x 2 0 ^0 = 3
0b100 转换为十进制数:1 x 2 2 ^2 + 0 x 2 1 ^1 + 0 x 2 0 ^0 = 4
0b101 转换为十进制数:1 x 2 2 ^2 + 0 x 2 1 ^1 + 1 x 2 0 ^0 = 5

示例代码如下:

// 二进制开头为 0b
int myInt1 = 0b0;  		
int myInt2 = 0b1;  		
int myInt3 = 0b10;  	
int myInt4 = 0b11;  	
int myInt5 = 0b100;  	
int myInt6 = 0b101;  	

System.out.println(myInt1);  // 输出:0
System.out.println(myInt2);  // 输出:1
System.out.println(myInt3);  // 输出:2
System.out.println(myInt4);  // 输出:3
System.out.println(myInt5);  // 输出:4
System.out.println(myInt6);  // 输出:5

八进制

八进制是以 8 为基数的计数系统,每位取值是 0 和 7之间的 8 个数值(依次为 0、1、2、3、4、5、6、7)。

在八进制中,逢八进十,八进制字面量必须以 0 开头。例如,010 表示十进制值为 8、0123 表示十进制值为 83、-0123 表示十进制值为 -83。很显然,八进制表示法比较容易混淆,所以建议最好不要使用八进制数。

八进制转换为十进制

075 和 011011 分别表示十进制数 61 和 577,计算方式如下:
075 转换为十进制数:7 x 8 1 ^1 + 5 x 8 0 ^0 = 61
01101 转换为十进制数:1 x 8 3 ^3 + 1 x 8 2 ^2 + 0 x 8 1 ^1 + 1 x 8 0 ^0 = 577

示例代码如下:

// 八进制开头为 0
int myInt1 = 075;
int myInt2 = 01101;

System.out.println(myInt1);  // 输出:61
System.out.println(myInt2);  // 输出:577

十六进制

十六进制是以 16 为基数的计数系统,每位取值是 0 和 F 之间的 16 个数值(依次为 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F),字母 A~F 表示最后的 6 个数字。

在十六进制中,逢十六进一,必须以 0X 或 0x 开头,十六进制主要用于二进制的简化表达方式。

十六进制应用场景

对有些编程任务而言,八进制和十六进制比十进制更适合。
我们经常使用十六进制表示颜色,如果您曾设置过网页的背景颜色,可能使用过表示绿色、蓝色和奶油硬糖色的十六进制数,它们分别是 0x001100、0x000011 和 0xFFCC99。

十六进制转换为十进制

0x58 和 0Xa21c 分别表示十进制数 88 和 41500,计算方式如下:
0x58 转换为十进制数:5 x 16 1 ^1 + 8 x 16 0 ^0 = 88
0Xa21c 转换为十进制数:10 x 16 3 ^3 + 2 x 16 2 ^2 + 1 x 16 1 ^1 + 12 x 16 0 ^0 = 41500

十六进制 a、c 分别转换为是十进制 10、12

示例代码如下:

// 十六进制开头为 0x 或 0X
int myInt1 = 0x58;  
int myInt2 = 0Xa21c;

System.out.println(myInt1);  // 输出:88
System.out.println(myInt2);  // 输出:41500

浮点型字面量

浮点型字面量使用英文句点(.)表示小数点,以字母 F 或 f 结尾的字面量是 float 类型,以字母 D 或 d 结尾的字面量是 Double 类型。 所有的浮点型字面量都被视为 double 类型,而不是 float 类型。要将浮点型字面量的类型定为 float,可加上字母 F(或 f)。
示例代码如下:

float myFloat = 3.1415926f;

浮点字面量可分三种表现形式:十进制数的 double 类型、十进制数的 float 类型、科学计数法形式。

十进制数形式展现 double 类型(默认类型,通常省略 D)

浮点类型的 double 字面量可分三种表现形式:5.12、512.0、.512。

示例代码如下:

double myDouble1 = 5.12;
double myDouble2 = 512.0;
double myDouble3 = .512;

System.out.println(myDouble1);  // 输出:5.12
System.out.println(myDouble2);  // 输出:512.0
System.out.println(myDouble3);  // 输出:0.512
十进制数形式展现 float 类型

浮点类型的 float 字面量可分三种表现形式:5.12F、512.0F、.512F。

示例代码如下:

float myFloat1 = 5.12F;
float myFloat2 = 512.0F;
float myFloat3 = .512F;

System.out.println(myFloat1);  // 输出:5.12
System.out.println(myFloat2);  // 输出:512.0
System.out.println(myFloat3);  // 输出:0.512
科学计数法形式(指数表示法)

科学计数法使用字母 e(或 E),而且指数可以是负数。
例如:5.12e2(即 5.12x102)、5.12E2(同样是 5.12x102)

示例代码如下:

double myDouble1 = 5.12e2;
double myDouble2 = 5.12E2;
double myDouble3 = 5.12e-2;
double myDouble4 = 5.12E-2;

System.out.println(myDouble1);  // 输出:512.0
System.out.println(myDouble2);  // 输出:512.0
System.out.println(myDouble3);  // 输出:0.0512
System.out.println(myDouble4);  // 输出:0.0512

负的数字字面量

负的数字字面量可在前面加上负号(-),例如,-100,-100L,-12.34,-12.13F。

以下划线分隔的字面量

对于很大的整型字面量,为提高代码的可读性,还可以在整型字面量中添加下划线 “ _ ”。
例如:1_000_000 或 0b1111_0100_0010_0100_0000 表示一百万、21_474_836_470L

示例代码如下:

int myInt1 = 1000000;
int myInt2 = 1_000_000;
int myInt3 = 0b1111_0100_0010_0100_0000;

System.out.println(myInt1);  // 输出:1000000
System.out.println(myInt2);  // 输出:1000000
System.out.println(myInt3);  // 输出:1000000

其中 myInt3 以二进制显示阅读性最差, 其次就是 myInt1,myInt2 阅读性最好。 这些下划线只是为了让人更易读。Java 编译器会忽略这些下划线。

在本章我们学习了:

  • 使用二进制、八进制、十进制、十六进制来表示整型字面量
  • 二进制转换十进制示例
  • 八进制转换十进制示例
  • 十六进制转换十进制示例
  • 浮点型字面量就是带有小数点 “ . ” 的数值
  • 浮点型三种表现形式:double、float、科学计数法
  • 以下划线分隔的字面量,可提高可读性

接下来,我们开始学习 Java 的布尔/字符/字符串字面量:Java零基础22-Java 的布尔/字符/字符串字面量

猜你喜欢

转载自blog.csdn.net/shilishili/article/details/88394617