2021-03-15

2023-05-16

float型变量占用32bit,即4个byte的内存空间

我们先来看下浮点数二进制表达的三个组成部分。

三个主要成分是:
在这里插入图片描述

Sign(1bit):表示浮点数是正数还是负数。0表示正数,1表示负数
Exponent(8bits):指数部分。类似于科学技术法中的M*10N中的N,只不过这里是以2为底数而不是10。需要注意的是,这部分中是以27-1即127,也即01111111代表2^0,转换时需要根据127作偏移调整。
*10000000代表21,10000001代表22…实际上就是Exponent - 127 = log2 (2^n).
*回忆科学记数法,nE0等于其本身,即不进/退小数位,nEx则进/退x位.
Mantissa(23bits):基数部分。浮点数具体数值的实际表示。
下面我们来看个实际例子来解释下转换过程。
Step 1 改写整数部分
以数值5.2为例。先不考虑指数部分,我们先单纯的将十进制数改写成二进制。
整数部分很简单,5.即101.。

Step 2 改写小数部分
小数部分我们相当于拆成是2-1一直到2-N的和。例如:
0.2 = 0.125+0.0625+0.007825+0.00390625即2-3+2-4+2-7+2-8….,也即.00110011001100110011。

或者换个更傻瓜的方式去解读十进制对二进制小数的改写转换,通常十进制的0.5也(也就是分数1/2),相当于二进制的0.1(同等于分数1/2),

我们可以把十进制的小数部分乘以2,取整数部分作为二进制的一位,剩余小数继续乘以2,直至不存在剩余小数为止。

例如0.2可以转换为:

0.2 x 2 = 0.4 0

0.4 x 2 = 0.8 0

0.8 x 2 = 1.6 1

0.6 x 2 = 1.2 1

0.2 x 2 = 0.4 0

0.4 x 2 = 0.8 0

0.8 x 2 = 1.6 1

即:.0011001…(它是一个无限循环的二进制数,明白为什么十进制小数转换成二进制小数的时候为什么会出现精度损失的情况了吗)

Step 3 规格化
现在我们已经有了这么一串二进制101.00110011001100110011。然后我们要将它规格化,也叫Normalize。其实原理很简单就是保证小数点前只有一个bit。于是我们就得到了以下表示:1.0100110011001100110011 * 2^2。到此为止我们已经把改写工作完成,接下来就是要把bit填充到三个组成部分中去了。

Step 4 填充
指数部分(Exponent):之前说过需要以127作为偏移量调整。因此2的2次方,指数部分偏移成2+127即129,表示成10000001填入。
整数部分(Mantissa):除了简单的填入外,需要特别解释的地方是1.010011中的整数部分1在填充时被舍去了。因为规格化后的数值整部部分总是为1。那大家可能有疑问了,省略整数部分后岂不是1.010011和0.010011就混淆了么?其实并不会,如果你仔细看下后者:会发现他并不是一个规格化的二进制,可以改写成1.0011 * 2^-2。所以省略小数点前的一个bit不会造成任何两个浮点数的混淆。
具体填充后的结果见下图
在这里插入图片描述

练习:如果想考验自己是否充分理解这节内容的话,可以随便写一个浮点数尝试转换。通过 浮点二进制转换工具可以验证答案。
转自:https://www.cnblogs.com/yiyide266/p/7987037.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-03-15 的相关文章

  • pix2.4.8 从入手到装机(2021.4.4)

    2023 2 10 我重新完完整整的又走了一次 xff0c 记录了一下过程 xff1a 飞控是pix2 4 8 xff0c 固件是APM 原文 xff1a 咸鱼入手2套辣鸡pix xff0c 第一次使用并检查硬件好坏 xff0c 确认是否退
  • 2021-08-20 SONiC中的FRR和Zebra

    2021 08 20 SONiC中的FRR和Zebra SONiC中采用FRR和Zebra处理路由协议 以前写过SONiC系统所默认包含的BGP模块在201811版的SONiC之前是开源的Quagga软件 xff0c 之后改成了更流行的FR
  • 2021-09-27

    虚拟环境中用pip下载安装包却安装到base环境解决方案 原因解决方案 遇到的问题 xff1a windows环境下进入虚拟环境 xff0c 使用pip install指令安装包时发现没有安装到虚拟环境下 xff0c 而是安装到了base环
  • 2021 SLAM会议论文汇总

    目录 1 ICRA2021语义定位与建图视觉SLAM视觉里程计视觉三维重建视觉惯性里程计跟踪深度估计视觉定位激光雷达定位多传感器数据融合多传感器融合建图激光雷达SLAM激光雷达定位激光雷达建图激光里成计 amp 激光惯性里程计标题点云注册特
  • 最新C语言编程软件推荐(2021整理)

    一 C语言编程软件推荐 C语言编程软件适于编写系统软件 xff0c 是学习编程的同学们的必备软件 c语言一种应用非常广泛的编程语言 xff0c 不仅仅是在软件开发上 xff0c 而且各类科研都会用到c语言 今天小编给大家汇总下C语言的编程软
  • 2021-09-17

    https d2lzkl7pfhq30w cloudfront net pub archive epel 6 x86 64 以上是epel的新地址
  • 2021-06-02

    在ROS中仿真模型中添加gps传感器 获取gps传感器模型包为自己的机器人添加gps传感器将gps之中的经度纬度坐标转化为自己地图中的坐标 1 获取gps传感器模型包 link http wiki ros org hector gazebo
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • 2021-03-15

    float型变量占用32bit xff0c 即4个byte的内存空间 我们先来看下浮点数二进制表达的三个组成部分 三个主要成分是 xff1a Sign xff08 1bit xff09 xff1a 表示浮点数是正数还是负数 0表示正数 xf
  • 2021互联网大厂职级对应薪资一览表

    原文连接 xff1a https mp weixin qq com s nYNZjJJzrO0Sc5h2AEPnaQ 互联网大厂新入职员工各职级薪资对应表 xff08 技术线 xff09 图片数据来源 xff1a 知乎加 上面的表格不排除有
  • 3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(3)marlin 2.0.9.2 截至发稿时间2021年12月16日

    Marlin 3D Printer Firmware 头描述详见其他两个文件头描述 Copyright c 2020 MarlinFirmware https github com MarlinFirmware Marlin Based o
  • 2021-02-13

    昨天学习了关于位运算的一些常识 xff0c 自己也跟着视频敲了一些位运算代码如下 xff1a package com raisecom tiap ems basic mgt domain acl import java util Array
  • 【日记 2021-05-01】 leetcode练习&& Linux修改文件权限

    题目 xff1a 1335 工作计划的最低难度 题目内容 xff1a 你需要制定一份 d 天的工作计划表 工作之间存在依赖 xff0c 要想执行第 i 项工作 xff0c 你必须完成全部 j 项工作 xff08 0 lt 61 j lt i
  • 串口通信学习(GPS模块)2021.5.10

    GPS串口通信学习实践 2021 5 10 1 串口通信简介1 1 波特率1 2 数据位1 3 停止位1 4 奇偶校验位 2 GPS模块串口通信配置2 1 驱动安装2 2 插入GPS模块2 3 GPS模块串口通信数据简介 3 Java实现G
  • 2021-01-18

    求助 xff0c 关于Ubuntu20 04安装网络调试助手打不开的问题 我在虚拟机上安装了Ubuntu20 04并安装了网络调试助手 xff0c 但却打不开 xff0c 运用了sudo apt get libqtgui4 amd64也没用
  • 2021总结. 2022展望

    2021 收获了许多 技能上 学习了多个技能 自由泳自由倒立复刻拳王梅威瑟的跳绳训练单板滑雪 总结 技能上尽量是身体力行的 自从看过 囚徒健身 后 被作者的自传所影响 希望成为想他那样的人 认知上 认知上也有了提升 读了许多书 今年比较喜欢
  • 2021-08-31

    二次规划求解器OOQP的基础使用 前言一 OOQP所包含参数的定义二 简单调用1 头文件2 参数设置3 进行求解4 取出计算结果 总结 前言 OOQP作为一款强大的开源凸优化库 支持C 43 43 Matlab调用 现在这里记录下其简单的使
  • 2021-07-22

    MSP432在keil中通过CMSIS DAP下载程序出现cannot enter debug mode的解决办法 xff1a MSP432下载程序出现cannot enter debug mode 可以通过修改如下设置 Debug里面的两
  • 求旋转后的坐标

    坐标点target 中心点center 角度angle 旋转后坐标 function getRotatePoint targetX targetY centerX centerY angle const rotation angle Mat
  • ES6 Symbol

    概览 const mySymbol Symbol mySymbol console log mySymbol Symbol mySymbol console log mySymbol Symbol mySymbol false consol

随机推荐

  • springboot项目,localhost:port 可以访问,但是外网IP:port不行

    springboot 项目启动后 xff0c localhost port 可以访问 xff0c 但是外网IP port不行 现象原因及解决方法解决方法 xff1a 规则1 xff1a 规则2 xff1a 规则3 xff1a 现象 spri
  • springcloud项目,localhost:port 可以访问,但是外网IP:port不行

    springcloud项目启动后 xff0c localhost port 可以访问 xff0c 但是外网IP port不行 现象原因及解决方法解决方法 xff1a 规则1 xff1a 规则2 xff1a 规则3 xff1a 现象 spri
  • Springboot项目(PC)启动后如何对外访问?

    64 toc 比如这是本地地址 比如这是外部手机设备访问 如有错误欢迎指正
  • linux配置vnc

    1 yum install tigervnc server tigervnc 2 vim etc sysconfig vncservers xff08 SUSE企业版不用配置此文件 xff09 再最后面加入如下两行 xff1a VNCSER
  • tensor和numpy互相转化

    span class token keyword import span torch span class token keyword import span numpy span class token keyword as span n
  • vmbox主机和虚拟机无法共通网络服务 主机无法使用虚拟机的网络服务 虚拟机无法使用主机的网络服务

    问题描述 xff1a 我在主机开启了一个phpstudy的服务 xff0c 在虚拟机中开启了一个weblogic的服务 主机可以访问主机开启的phpstudy服务 xff0c 虚拟机不可以 虚拟机可以访问其开启的weblogic服务 xff
  • Linux下的stratis高级存储

    Linux下的stratis高级存储 一 stratis存储介绍1 stratis存储简介2 stratis的架构图3 stratis存储的高级特性4 stratis的专业术语5 stratis支持的设备 二 配置stratis精简池1 系
  • Linux系统之部署Go语言开发运行环境

    Linux系统之部署Go语言开发运行环境 一 Go语言介绍1 Go语言简介2 Go语言的撰写风格 二 本地环境检查1 检查系统版本2 检查系统内核版本 三 yum直接安装go1 检查yum仓库2 安装go3 创建环境变量 四 二进制安装Go
  • 解决vnc view看不到图形界面的问题

    有时候用VNC View打开远程linux桌面时 xff0c 桌面显示不出来 xff0c 只有一个灰色背景加上一个命令行 这时候需要在vnc server上设置一下 xff1a 编辑 root vnc xstartup root 64 lo
  • C# delegate、event、Action、Func使用案例解析

    C 中 delegate event Action Func使用案例解析 一 xff1a delegate与event配合使用 public static class Evt Test public static string strEqu
  • Nginx 使用 logrotate 进行日志滚动

    Nginx 日志滚动 xff08 官方 xff09 向 Nginx 主进程发送 USR1信号 USR1信号量被 Nginx 自定义了 xff0c 为重新打开日志 xff1b 当 kill 命令发送 USR1时 xff0c nginx 会重新
  • Softmax()函数的溢出问题笔记

    首先 xff0c 回顾softmax函数的定义 xff1a 按照这个定义 xff0c softmax 在Python解释器中可以这样实现 xff1a import numpy as np def softmax a exp a 61 np
  • 进公司一年,怎么跟老板提涨工资?

    网友提问 xff1a 进公司一年 xff0c 怎么跟老板提涨工资 xff1f 无忧专家 xff1a 薪资不是 你想加 xff0c 想加就能加的 xff0c 好多人鼓足勇气开口说出了加薪理由 xff0c 却被老板轻描淡写的一句话给噎住了喉咙
  • what is Cardinality?

    在数学意义上 xff0c cardinality 基数或者势 指集合内元素的个数 在数据库的相关资料中 xff0c 往往会看到cardinality这个术语 Base cardinality is the number of rows in
  • CAS单点登录开源框架解读(六)--CAS单点登录服务端认证之用户认证跳转

    用户认证之后如何执行后续跳转 在上一章节中 xff0c 我们知道了默认CAS服务端是如何通过配置文件实现用户登录名和密码的认证 xff0c 下面我们将继续对认证之后的动作处理进行分析 1 发送TGT之行为状态sendTicketGranti
  • cocos creator新缓动系统-cc.tween

    前言 一直对于cocos creator的action系统有着深深的埋怨 xff0c 原因是用起来太麻烦了 习惯了Unity的Tween插件的用法 xff0c 我也试着自己封装了下action系统 xff0c 用起来像Tween那样 xff
  • Direct UI

    有个坑爹的说法 xff1a 其实Direct UI只是一个思想 xff0c 要实现这个思 想 xff0c 还要靠自己 采用windows方式用api或gdi实现ui的绘制 DirectUI意为直接在父窗口上绘图 Paint on paren
  • 个人学习记录-AD2021

    有结点的一侧有电气属性 xff0c 用于连接导线 当捕捉格较大时 xff0c 更改捕捉栅格 视图 栅格 设置捕捉栅格 designator 位号 xff0c 一般用R U C T 代替 link 链接 填写元件名称及购买商 管脚name处
  • Linux Zram配置使用(特定平台&个人使用,maybe不具普适性)

    内核配置 xff1a CONFIG ZSMALLOC 61 y CONFIG ZRAM 61 y CONFIG SWAP 61 y swapon dev zram0 Function not implemented报错原因是CONFIG S
  • 2021-03-15

    float型变量占用32bit xff0c 即4个byte的内存空间 我们先来看下浮点数二进制表达的三个组成部分 三个主要成分是 xff1a Sign xff08 1bit xff09 xff1a 表示浮点数是正数还是负数 0表示正数 xf