- long:64位(8字节),取值范围为 -2^63 到 2^63 - 1,即 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,规则为64位二进制数字,64位二进制最大为2^64 - 1,但是第一位代表正负,所以最大为2^63 - 1,最小为-2^63,具体负数的规则为取反,参考byte
- int:32位(4字节),取值范围为 -2^31 到 2^31 - 1,即 -2,147,483,648 到 2,147,483,647,规则为32位二进制数字,64位二进制最大为2^32 - 1,但是第一位代表正负,所以最大为2^31 - 1,最小为-2^31,具体负数的规则为取反,参考byte
- short:16位(2字节),取值范围为 -2^15 到 2^15 - 1,即 -32,768 到 32,767,规则为16位二进制数字,16位二进制最大为2^16 - 1,但是第一位代表正负,所以最大为2^15 - 1,最小为-2^15,具体负数的规则为取反,参考byte
- byte:8位(1字节),取值范围为 -2^7 到 2^7 - 1,即 -128 到 127,规则为8位二进制数字,8位二进制最大为2^8 - 1,但是第一位代表正负,所以最大为2^7 - 1,最小为-2^7,具体负数的规则为取反,例如(byte)5的二进制表示为00000101,那么-5表示为11111010
- float:32位(4字节),相对特殊,不是简单的二进制转换形式,使用科学计数法存储,即一个浮点数有2部分组成:底数m和指数e,而指数e前面还有一位bit位是符号位,即代表了正负。
- 符号位: 1位,表示负数,0表示正数
- 指数位: 8位,表示指数,可表示数据范围(00000000-11111111,对应的十进制为0-255)
因为指数可以是正数也可以是负数,IEEE754标准规定:指数减去127才是实际的指数(这是规定)
float的指数表示范围是-127到128;
3. <font style="color:rgb(31, 35, 40);">底数位:只存储23位,最大值为2^23=8388607(7位数),由于我们输入的是十进制,因此对应十进制数为7位,故该float 型的精度为7~8位有效数字(有的编译器为7位,有的为8位)</font>
- double:64位(8字节),和float一样,使用科学计数法存储,即一个浮点数有2部分组成:底数m和指数e,而指数e前面还有一位bit位是符号位,即代表了正负。
- 符号位: 1位,表示负数,0表示正数
- 指数位: 11位,表示指数,可表示数据范围(00000000000-11111111111,对应的十进制为0-2047)
因为指数可以是正数也可以是负数,IEEE754标准规定:指数减去1023才是实际的指数(这是规定)
double的指数表示范围是-1023到1024;
3. <font style="color:rgb(31, 35, 40);">底数位:只存储52位,最大值为2^52=4503599627370496(16位数),由于我们输入的是十进制,因此对应十进制数为16位,故该double型的精度为16~17位有效数字(有的编译器为16位,有的为17位)</font>
float和double参考文章:https://blog.csdn.net/m0_74097410/article/details/131533077