算法基础

来源:互联网 发布:石家庄整站优化 编辑:程序博客网 时间:2024/05/17 17:15

java 中原始数据类型
a、整数型:
byte 占 1个字节(8个bit) 范围-128——127
short 占 2个字节(16bit) 范围-2^15——2^15-1
int(默认) 占 4个字节(32bit) 范围-2^31——2^31-1
long 占 8个字节(64bit) 范围-2^63——2^63-1(超int范围時在後面加l,最好寫大L,小l与1太像容易混淆)

b、浮点型:(小数)
float单精度 占 4个字节(32bit) 3.4E-38——3.4E+38(书写时在后面加f,如1.2f)
最多精确表示7位小数
float的数据范围比long大,两者底层存储结构不同
IEEE 754 规定
float:从左往右
第1位代表符号位,
第2-9位代表指数位,0-255,0代表0,255代表无穷大,1-254都減去127, 变为 -126——127
第9-32位代表尾数位
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符号位,f是23bit的小数部分,exponent是指数部分)
最后結果:(-1)^(sign)*1.f*2^(exponent)

double双精度(默认) 占 8个字节(64bit) 范围 最多精确表示15位小数
long double 占16个字节(128bit)

c、字符型:
char 占 2个字节(16bit) 范围

d、布尔型:
boolean 沒有明确指定的大小(理论上占八分之一个字节),因为一個开关就可以決定true和false(书写時也可在后面加,但一般不加)

Java运算符的优先级
运算符*和/以及%的优先级高于+和-。
逻辑运算符中!拥有最高优先级,之后是&&,接下来是||。
一般来说相同优先级的运算符的运算顺序是从左置右,使用括号可以改变这些优先级规则。

类型转换
如果不会损失信息,数值会被自动提升为高级的数据类型。

原创粉丝点击