float、double和int在内存中的储存区别

概述

  • 单精度浮点型和双精度浮点型是两种常见的浮点数表示方式,用于存储和处理浮点数。

1. 单精度浮点型(float)


  • 单精度浮点数使用32位(4个字节)来表示(原码储存)。其中,1位用于表示符号(正负),8位用于表示指数,23位用于表示尾数( 2 − 23 2^{-23} 223 约等于 1.19 ∗ 1 0 − 7 1.19*10^{-7} 1.19107,所以float类型小数部分只能精确到小数点后面 6 位,具有较小的数值范围。

2. 双精度浮点型(double)


  • 双精度浮点数使用64位(8个字节)来表示(原码储存)。其中,1位用于表示符号(正负),11位用于表示指数,52位用于表示尾数( 2 − 52 2^{-52} 252 约等于 2.22 ∗ 1 0 − 16 2.22*10^{-16} 2.221016,所以double类型小数部分只能精确到小数点后面 15 位双精度浮点型,可以存储更多的有效数字,具有更大的数值范围。

2.1 二者主要区别

  • 精度:双精度浮点型具有更高的精度,可以存储更多的有效数字。
  • 范围:双精度浮点型具有更大的数值范围,可以表示更大或更小的数值。
  • 存储空间:双精度浮点型使用的存储空间是单精度浮点型的两倍。
  • 运算速度:由于双精度浮点型需要处理更多的位数,所以在一些计算中,使用单精度浮点型可以更快。

3.整型(int)


  • 整型在内存中以补码形式储存,第一位为符号位,0表示正数,1表示负数。

    • 正数的原、反、补码相同
    • 负数的补码是它的反码+1
    • 负数的补码是它的原码除符号位以外全部取反(0变为1,1变为0)
    • 原码是一个数转化为二进制的形式的值,第一位是符号位,0表示正数,1表示负数。

结语

在选择使用单精度浮点型还是双精度浮点型时,需要根据具体的应用场景和需求来决定。

  • 如果需要更高的精度和更大的数值范围,可以选择双精度浮点型
  • 如果对精度和范围要求较低,并且关注存储空间和计算速度,可以选择单精度浮点型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值