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 的相关文章

  • 2021-11-17:virtualbox6+Ubuntu18.04,虚拟机与主机间ping不通问题解决方案

    虚拟机可以ping通主机 xff0c 但是主机ping不通虚拟机的解决方案 1 先要查看虚拟机以及主机防火墙是否都关闭 xff0c 虚拟机防火墙关闭方法 xff1a a sudo apt get install ufw 安装 b sudo
  • 2021-09-27

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

    多旋翼飞行器学习笔记 一 多旋翼基本组成 1 1机架 xff08 机身 起落架 涵道 xff09 1 机身 机身要考虑的有 xff1a 尺寸 布局 材料 强度 重量 指标参数包括 xff1a 重量 轴距 xff08 外圈电机围城圆的直径 x
  • 北理工-2021年春-《数字逻辑》实验

    北理工 2021年春 数字逻辑 实验 实验二 组合电路设计 实验目的 本实验通过设计一个组合电路实例 xff0c 让学生掌握组合逻辑电路从设计到验证的全过程 通过该实验 xff0c 可以加深学生对组合电路原理和设计的理解 xff0c 同时可
  • 最新C语言编程软件推荐(2021整理)

    一 C语言编程软件推荐 C语言编程软件适于编写系统软件 xff0c 是学习编程的同学们的必备软件 c语言一种应用非常广泛的编程语言 xff0c 不仅仅是在软件开发上 xff0c 而且各类科研都会用到c语言 今天小编给大家汇总下C语言的编程软
  • 2021 => 手把手搭建dhcp服务(详细)

    架构解析 dhcp服务器配置 配置实验环境 关闭VMware的dhcp服务 给虚拟机添加网卡为VMnet1 安装与配置dhcp服务 给新添的网络配置IP 配置dhcp服务 在真实的主机系统上查看dhcp配置 为真实主机系统分配固定的IP 修
  • 2021 => 手把手教你NFS部署(实用)

    NFS服务 原理 xff1a 供文件共享服务 为Web Server 配置集群中的后端存储 支持多节点同时挂载以及并发送与写入 架构解析 这是一张大型网站高并发架构图 xff0c 我们只需注意图中圈红的地方 建立NFS文件系统本质就是用来进
  • 2021-前端-VsCode插件

    此乃吾习前端 xff0c VsCode之插件 xff0c 个人所装 xff0c 喜着自拿 xff0c 不足之处还望海涵 xff0c 多加批评 1 Auto Close Tag 自动闭合尾部的标签 2 Atuo Rename Tag 修改 h
  • 2021-09-17

    https d2lzkl7pfhq30w cloudfront net pub archive epel 6 x86 64 以上是epel的新地址
  • 2021蓝桥杯B组 第I题杨辉三角形

    第I题 杨辉三角形 题目大意 xff1a 解法一 xff1a xff08 得20 xff09 思路 xff1a 当指考虑小范围的值时 xff0c 我们可以直接根据杨辉三角形的规律 xff1a 第i行第j列的值 61 第i 1行第j列的值 4
  • 2021-08-30 创建tensor时,注意不要让梯度消失了

    下面这种是错误的 xff0c 梯度会消失 data span class token operator 61 span torch span class token punctuation span tensor span class to
  • UCOSIII从官网(2021)下载

    官网地址 xff1a https www silabs com developers micrium 注意 xff1a 在进入下载前 可能 要注册一个账号 xff0c 如果可以直接下载的话不用注册也可以 xff0c 如果有小伙伴需要注册账号
  • 2021-03-08

    今天在网上安装PR xff0c 网上下载的安装器把电脑默认装了一大堆垃圾工具 xff0c 依次删除后突然发现谷歌浏览器主页被篡改了 xff0c 随后用360等工具修复 xff0c 均提示无异常 通过浏览器设置和重置主页后仍然无效 xff0c
  • 2021电赛F题视觉教程+代码免费开源

    2021电赛F题视觉教程 43 代码免费开源 最近好多要电赛题的源码 xff0c 其他csdn营销号下载都需要会员或钱 xff0c 正好最近课设又要做一遍电赛小车题 xff0c 哥们先把代码开源了 xff0c 饿死营销号 电赛宝藏链接 xf
  • 2021-05-14 Redis面试题 redis 部署生产环境

    redis 部署生产环境 redis cluster xff0c 10 台机器 xff0c 5 台机器部署了 redis 主实例 xff0c 另外 5 台机器部署了 redis 的从实例 xff0c 每个主实例挂了一个从实例 xff0c 5
  • 2021-01-18

    求助 xff0c 关于Ubuntu20 04安装网络调试助手打不开的问题 我在虚拟机上安装了Ubuntu20 04并安装了网络调试助手 xff0c 但却打不开 xff0c 运用了sudo apt get libqtgui4 amd64也没用
  • 2021校招_海康威视

    2021届海康威视面试 一面 xff1a 1 https与http协议的区别 2 Spring的启动过程 3 Springboot相比较Spring的优点 4 Linux修改文件权限命令 5 项目中所用到的技术 6 Restful风格 7
  • 队列的链式存储--- 2021.10.27

    上一讲链接 xff1a 队列的基本概念 2021 10 8 队列的链式存储 xff1a 什么叫队列的链式存储呢 xff1f 我们在上一讲都知道队列的结构特点 xff0c 那么我们可不可以通过链表来实现队列 xff0c 从而实现了队列的链式存
  • 2021-08-10

    LEGO loam第一次测试运行数据包nsh indoor outdoor成功 xff1a 记录以下 xff0c 以免自己忘记步骤 在第一个终端里 xff1a 1 source catkin ws devel setup bash xff0
  • 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