浮点数的表示

 我来答
晴笙海
2023-03-07 · 超过219用户采纳过TA的回答
知道小有建树答主
回答量:556
采纳率:100%
帮助的人:5.9万
展开全部

完整的浮点数表示包括以下几点:

符号(S):1位二进制位,0表示正数,1表示负数。阶码部分(E):根据不同的精度E的位数不同(参照下图float与double的区别),表示小数点向右移动的位数。E>0 表示向右移动,E<0表示向左移动。

尾数部分(M):根据不同的精度M的位数不同参照下图float与double的区别),是浮点数的二进制表示。需要注意的是这里尾数部分为 1.M... ,所以遇到类似0.125这样的小数,其二进制表示为 0.1001111... ,这时就需要将小数点右移1位才符合要求。

浮点数的精度:在像C/C++这样的语言中,浮点数有float,double类型,他们的精度是不一致的。

float类型:使用32位表示,1位符号,8位阶码(阶码包含一位符号位),23位尾数(无符号位)。阶码的范围: 使用移码表示,偏置取127,表示数的范围为[-126,127](由IEEE 754标准规定,见下文)。尾数范围: 实际应当用24位表示,但由于第一位必须为1,则采用23位表示(节省了一位来提高精度),[0,2^23=8388608]

Double类型:使用64位表示,1位符号,11位阶码(阶码包含一位符号位),52位尾数(无符号位)。阶码的范围: 与float类型一样,使用移码表示,偏置取127,表示数的范围为[-1022,1023]。尾数范围: 实际应当用53位表示,但由于第一位必须为1,则采用52位表示(节省了一位来提高精度)

浮点数的二进制表示:10进制浮点数转换为二进制表示很简单,分2个部分讨论。整数部分:采用除2取余法计算(直到被除数为0);小数部分:采用乘2取整法计算(直到小数部分为0,对于无限小数采取截断方式)。最后用整数二进制表示.小数二进制表示就可以得到完整的浮点数二进制表示了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式