首先我们先了解一下基本数据类型
基本数据类型有八种
- bit:一个字节的数据类型(8位),范围是-128到127。
- short:两个字节,占16位。范围是-(2的15次方)到(2的15)-1一般不用这种数据类型。
- int:这是我们最常见也是最常用的数据类型。现在一般的计算机都是64位操作系统。(位)是指计算机一次计算能够处理的二进制的个数。一下各种类型都是在这种操作系统下进行讨论。int类型的数据占4个字节也就是32位。所以int的范围是有多大呢?可以通过排列组合的知识进行计算。一位二进制数可以表示2的一次方个数,两位表示4个,则32位可以表示2的32的数(无符号的数),有符号的数范围是-2147483648到2147483647,可以表示21亿的数。显然用int存电话号码是不够的,再用数据库进行操作的时候要考虑好数据类型。
- long:占64个字节,有符号的范围大约是-(2的63次方)到(2的63次方-1)对的你应该注意到正数比负数小一。因为还有一个0,
- float:在64位操作系统下,float类型的数据占32位,一般用来表述小数。但是他并不是用排列组合的方式来表示数的大小,而是通过IEEE754标准来进行存数据。32位中第一位是符号位,0是正数,1是负数。后八位是阶码(假设为k),这八个二进制位算出来再剪掉127得到指数,后面的23位是小数部分。具体的如下表示
±±-------±----------------------+
|S| Exp | Fraction |
±±-------±----------------------+
S表示符号位 Exp表示阶码,实际要减去127,Fraction表示小数部分。
貌似可以达到2的100多次方数,但实际却不是这样的,因为float数据类型只有32位,所以当表示很大的数时,是间断表示的,也就是有的比较大的数(一般达到千万级)是不能准确表示的,是会失去精度的。这种弊端尤其在int转成float时候表现的尤为明显,而float的范围比int大,所以要进行强制转换例如:
float a=(int) b;
当然也会丧失精度。所以float这种数据要慎用,尤其是数据库操作,可以用double表示小数更为精确。 - double
这种数据类型的范围比较大,表示的也比较精确。这种数据类型是比较常用的。推荐用double代替float使用。 - bool
布尔类型,取值为true或者false。常用于逻辑判断。 - char类型
字符类型,一般存英文字母。比如char a=‘a’,注意是单引号
总结:一般声明数据类型的时候都用int double,注意各种数据的特点及范围。