【每日一发】同样4个字节的浮点数和整数为什么表达的范围有很大差异

32位整数最大值约为21亿,4字节浮点数最大值约3.4×10^38。两者虽占用相同空间,但组织方式不同。整数直接存储数值,浮点数由符号位、阶码和尾数组成。通过举例说明浮点数如何表示30.5,并解释最大浮点数的构成。
摘要由CSDN通过智能技术生成

      如果突然问这个问题,不知道是不是每个人都能思路清晰的应答。下面简单的说一说这个区别

       32位的整数,最大值是21亿左右,占用4个字节的浮点数,最大值大约是3.4×10^38.

       虽然两者占用的空间一致,但是其组织数据的方式是完全不同的。

       先说说比较属性的整形吧,为了简单,只说正数,符号位1位,值为0,后面的全部是111, 0111 1111 1111 1111 1111 1111,16进制的表示为 7F FF FF FF.

       浮点数的表示方法为: 符号位 + 阶码 + 尾数,为了简化,这里也只是考虑正数。4字节的浮点数,符号位1,解码有8位,而尾数就有23位。 其中阶码在实际中用移码表示,尾数就是浮点数内部可以存储表达的真实数据部分。

       先看一个简单的例子。

       30.5如何表示:

       正数:符号位为0

       30用二进制表示就是  11110

       0.5用二进制表示是: 0.1

            小数转换为二进制,就是用二成  5 × 2 = 10,那么这里就是0.1了

       那么综合起来就是   11110.1,那么这样看起来,该数亦可以向左移动4次(阶码),即 真实的尾数就是1.11101,众所周知,二进制就0,和1,而从尾数的特点可以看出,最原始的尾数一定是 1.xxxx,即第一位恒为1,这样,这个1就可以省略,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值