• 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. 符号位: 1位,表示负数,0表示正数
    2. 指数位: 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. 符号位: 1位,表示负数,0表示正数
    2. 指数位: 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


本站总访问量:次本站总访问数:人
本站由 Peng Tong 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。