在Java语言中,数值常量可以3种形式表示,分别是十进制,八进制和十六进制,但并非所有类型的基本数据都支持这3种形式的常量赋值
- 十进制:最常用的表示方式,如+8,2.3e6f,-1.0.浮点常量的十进制即可以小数形式表示,也可以指数形式表示,如123.45也可以1.2345e2.其中+与-相对,这里其值为正可以省略.
- 八进制:以数字0开头,如0314,-050.使用八进制时要注意八进制的数字只能是0-7,否则编译器会给出错误的信息,如不能像这样赋值:int x=078 浮点类型没有无八进制赋值,虽然想float x =03.3f,但编译器会视为 float x= 3.3f
- 十六进制:以0x或者0X开头,例如0x9f 、0x7
下面以一个例子说明:
public class Evaluate{
//十进制常量赋值
public void decimalEva(){
byte b = 10;
short s =205;
char c ='E';//也可以写成 char c=69;
int i =5003;
long l =89L;//后缀L代表表示为long类型量
float f = 3.2f;//注意后缀f不能省略
float f2=1.2e5f;//浮点数也能写成指数形式
double d =38.4;//小数默认为double类型
double d1 =15.0d;//后缀d能省略
}
//八进制常量赋值
public void otctalEva(){
byte b = 03;//八进制以0开头
short s =022;
char c =0101;
int i =037;
long l =0444;
// float f =045.1f; 非八进制,等价于float f =45.1
// double d =01.2; 非八进制,等价于double d =1.2
//byte b4=018; 错误,八进制不能含有8;
}
//十六进制常量赋值
public void hex(){
byte b =0x1d;
short s =0xff;
char c =0x2f;
int i =0x69;
float f =0x1.23p5f; //十六进制用p表示指数,而不是e
//float f =0x34.5 错误,十六进制浮点数必须要以指数形式表示
double d = 0x0.81p3
}
}
注意: Java中并没有提供二进制常量的表示方法,boolean类型的变量只有true和false这两个值,其他均为非法