【java】java的基本程序设计结构02-数据类型
数据类型
c语言 6种基本类型 (short,int ,long,float,double,char),boolean是由int写的。
在计算机运行时,不管多么高级的语言,最后都转成c语言的6种基本类型。
CPU和内存之间的连接靠总线,总线就是导线,总线用来传输数据。
靠电压传输,不受电阻影响(不能同时传, 电压是势能,同方向,势能更强;反方向,削减)
所以大类型数据比例要多一点(小类型比例多,数量多,容易拥堵)。
1.1 8个基本类型
byte-8 short-16 int-32 long-64 float-32 double-64
char-8/16/24/32(根据编码类型决定) boolean-32
4个整数,两个浮点
1.2 换算
- 1/0 ----> 1bit=1比特
- 1B =1字节=8bit
K=2^10 M=2^20 G=2^30
1KB=1024B 1MB=1024KB 1GB=1024MB
还有其他类型,都是由这8个基本类型组成的
byte x1=12; // 00001100short x2=9; // 00000000000001001int x3=1; // long x4=-10L;float x5=23.45F;double x6=123.56;char x7='9';boolean x8=true;//false
大小由其基本类型决定
1.3 int和float型
int 和 float 类型哪个精度更高:
精度上说,int型比float的精度要高。
int和float的数学位相同,都是32bit。
$ int 类型的 存储方式:
第一位代表int的正负,后31位存储数据。
最大值:2^31-1。
$ float 类型的 存储方式
1位符号位, 8位指数移码 ,23位尾数。
float最高可表示为39位,但是对于特别大的数只能保证6-7位。
因为float类型存储各数之间的间距不稳定,且离零越近越精确,
故:
对于小的数,float更精确。
对于大的数,int更精确。
有效位数:第一个不为0的数往后数。
1.3.1 整数类型
整数位: 符号位 数值位
0代表正数 正数的原码、反码、补码相同
1代表负数 负数的反码是原码取反,补码是反码加1
2进制 8进制 16进制
0b开头 0开头 0x开头
(只要范围允许,byte等4种类型用法一样)
int x1=0b100110;int x2=0xaf82;int x3=075662;
1.3.2 浮点类型
浮点位: 符号位 阶 数值位
面试点
float---32=1+8+23
组成
0 000000000 00000000000000000000000
1 8(指数,阶) 23(数值)
x( 0--255) y
float = (2^(x-127))*y
中间数据
0.25--->x=125
double---64=1+11+52 0--2047 x-1023
double= ( 2^(x-1023) ) * y
距离0越近,越密集;
距离0越远,越稀疏。