您的位置:首页 > 编程语言 > Java开发

JAVASE中的数据基本类型相关

2014-11-30 10:17 274 查看
JAVA中共有8种数据基本类型:byte,short,int,long,以上四种为整数型(初始值为0),
float,double,以上两种为浮点型(初始值为0.0),
char为字符类型(初始值""),boolean布尔类型只有true,false为初始值;
byte 为1个字节,由8位二进制码(bit)组成,范围为-128~127;
short为2个字节(16位),表示范围-2^15~2^15-1;
int 为4个字节(32位),表示范围-2^31~2^31-1;
long 为8个字节(64位),表示范围-2^63~2^63-1;
float(单精度,表示小数) 为4个字节(32位),表示范围10^-38到10^38 和 -10^38到-10^-38,
double(双精度,表示小数) 为8个字节(64位),表示范围10^-308到10^308 和 -10^-308到-10^-308
整数型数值默认为Int类型,浮点型数值默认为double类型,float类型在赋值时候必须以f结束:12.3f,long型必须以L结束:234234l;
以下来自引用:
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占1位二进制,表示数的正负。
指数符占1位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点
指数存指数的有效数字。

指数占多少位,尾数占多少位,由计算机系统决定。
可能是数符加尾数占24位,指数符加指数占8位 -- float.
数符加尾数占48位,指数符加指数占16位 -- double.

知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。

对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
数值运算:
int x = 5;
byte y = 6;
x = x + y; //此运算正常,x为int,y为byte运算时候,y类型自动提升为int,所以可以赋值给x
y = x + y;//此运算报错,因为y为byte,y类型自动提升int后,运算结果赋值给y,会丢失精度,所以代码报错 y=(byte)(x+y),必须强制转换



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: