C语言编程float型数据转怎么化为2进制数输出?

 我来答
惠企百科
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部
  1. 先将这个实数的绝对值化为二进制格式

  2. 将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边

  3. 从小数点右边第一位开始数出二十三位数字放入第22到第0位

  4. 如果实数是正的,则在第31位放入“0”,否则放入“1”

  5. 如果n 是左移得到的,说明指数是正的,第30位放入“1”;如果n是右移得到的或n=0,则第30位放入“0”

  6. 如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位。如果n是右移得到的或n=0,则将n化为二进制后在左边加“0”补足七位,再各位求反,再放入第29到第23位

float和double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 

无论是单精度还是双精度在存储中都分为三个部分:

  1. 符号位(Sign) : 0代表正,1代表为负

  2. 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储

  3. 尾数部分(Mantissa):尾数部分

    float的存储方式如下图所示:

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式