首页 > 编程知识 正文

c语言short的取值范围(c语言整型数据的范围)

时间:2023-05-03 13:39:54 阅读:77075 作者:2250

foat:4字节。 长长度为4字节,但浮点的存储范围比长长度的存储范围宽。

但是,当我读《java核心卷一》的时候,从长转换到浮点存在精度损失的问题。 也就是说,从长转换到浮点转换可能会丢失末尾的有效数字。

可以在两个类中解决java精度问题: BigInteger (大整数类型)和BigDecimal (大浮点类型)

3359 MP.csdn.net/posted it/100125465

为什么浮点的4字节比长类型的8字节范围大

因为整数和小数的基础记忆有点不同。

相同点:所有这些都以二进制形式保存

不同之处:

将小数转换为二进制后处理并保存。

例如8.25

)1)小数先转换为二进制

十进制: 8.25

二进制: 1000.01

(2)处理

二进制: 1000.01处理为科学记数法

1.00001 * x三次

0.00125 -0.0000 0000 .=="科学记数法1.xxx *某-n次处理

规律:用科学计数法处理后

a :整数部分必须为1

b :指数部分是整数

c :小数点以下是一系列数字

)2)如何保存

a :整数部分一定不存在1

(b )指数部是存储浮点型的整数,分配8位来存储指数,double分配11位

(c )小数点后的数字串将float的剩下的23位存储用于尾数存储,将double的剩下的52位存储用于尾数存储

)正负最高位为0为正,1为负

记忆方式不同

)1)由于我浮点和双精度是存储2的幂,所以数据范围大于长整型。

)2) float用23比特存储尾数,double用52比特存储尾数,精度范围double大于float。

浮点精度在小数点后6~7位左右,双精度为15~16

)3)从十进制小数转换为二进制时,尾数可能是无限长的。 那么,尾数只有23位或52位。

意味着超过的部分将被切掉。 也就是说,我们float和double是浮点型的,不准确。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。