特色课堂笔记——Java基本数据类型
1、Java——强类型语言,共有8种基本的数据类型 2、Java基本数据类型分类:
数据类型 | |
---|
整型 | byte、short、int、long | 浮点型 | float、double | 布尔型 | Boolean | 字符型 | char |
3、整型与浮点型的存储需求以及取值范围
类型 | 字节长度 | 取值范围 |
---|
int | 4字节 | -214748368~214748367 | short | 2字节 | -32768~32767 | long | 8字节 | -9223372036854775808~9223372036845775807 | byte | 1字节 | -128~127 | float | 4字节 | 大约 ±3.40282347E+38F(6~7位有效数字) | double | 8字节 | 大约±1.79769313486231570E+308(15位有效数字) |
字节(B) 是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制,既1Byte(字节)= 8bit(位)
4、不同数据类型的内存空间分配 int型(32bit):1位符号位,31位数值位
float型(32bit):1位符号位,8位指数位,23位数值位
Java的强数据类型本质上就是在内存中开辟不同的内存空间
5、浮点类型的精度丢失 浮点类型在计算机中的储存: float存储需求是4字节(32位), 其中1位最高位是符号位,中间8位表示阶位,后32位表示值 double存储需求是8字节(64为),其中1位最高位是符号位,中间11位表示阶位,后52位表示值 产生浮点类型的精度丢失的原因: 精度丢失就是我们的位数不够表示我们整个数值了
6、为什么byte类型127+1是 (-128) (1)计算机中对数据的二进制存储形式-------补码(下面讨讨论的皆为byte类型) 原码:45:00101101 -45:10101101 在最高位代表符号位区分正数还是负数,0代表正数,1代表负数 反码:45:00101101 -45:11010010 正数的原码和反码相同,负数的反码等于原码的符号位不变,其余各位按位取反 补码:45:00101101 -45:11010011 正数的原码反码和补码都形同,负数的补码等于在其反码基础上末尾+1 (2)为什么计算机设计反码? 因为计算机只有加法没有减法,在做减法运算的时候,可以认为是加上一个负数,这样可以减少计算机电路的复杂度。使用原码进行减法运算会出现问题,例如计算1-1,因为计算机有加法没有减法,所以计算机自动换算成1+(-1)1-1=1+(-1)=[00000001]原+[10000001]原=[10000010]原=-2 (符号位也参与运算)与实际结果不符。
|