概述
- 单精度浮点型和双精度浮点型是两种常见的浮点数表示方式,用于存储和处理浮点数。
1. 单精度浮点型(float)
- 单精度浮点数使用32位(4个字节)来表示(原码储存)。其中,1位用于表示符号(正负),8位用于表示指数,23位用于表示尾数( 2 − 23 2^{-23} 2−23 约等于 1.19 ∗ 1 0 − 7 1.19*10^{-7} 1.19∗10−7,所以float类型小数部分只能精确到小数点后面 6 位,具有较小的数值范围。)
2. 双精度浮点型(double)
- 双精度浮点数使用64位(8个字节)来表示(原码储存)。其中,1位用于表示符号(正负),11位用于表示指数,52位用于表示尾数( 2 − 52 2^{-52} 2−52 约等于 2.22 ∗ 1 0 − 16 2.22*10^{-16} 2.22∗10−16,所以double类型小数部分只能精确到小数点后面 15 位双精度浮点型,可以存储更多的有效数字,具有更大的数值范围。)
2.1 二者主要区别
- 精度:双精度浮点型具有更高的精度,可以存储更多的有效数字。
- 范围:双精度浮点型具有更大的数值范围,可以表示更大或更小的数值。
- 存储空间:双精度浮点型使用的存储空间是单精度浮点型的两倍。
- 运算速度:由于双精度浮点型需要处理更多的位数,所以在一些计算中,使用单精度浮点型可以更快。
3.整型(int)
-
整型在内存中以补码形式储存,第一位为符号位,0表示正数,1表示负数。
- 正数的原、反、补码相同。
- 负数的补码是它的反码+1。
- 负数的补码是它的原码除符号位以外全部取反(0变为1,1变为0)。
- 原码是一个数转化为二进制的形式的值,第一位是符号位,0表示正数,1表示负数。
结语
在选择使用单精度浮点型还是双精度浮点型时,需要根据具体的应用场景和需求来决定。
- 如果需要更高的精度和更大的数值范围,可以选择双精度浮点型。
- 如果对精度和范围要求较低,并且关注存储空间和计算速度,可以选择单精度浮点型。