编码-小数

2023-10-27

在这里插入图片描述

C语言中对于小数,采用float(单精度浮点型)和double(双精度浮点型)来存储。

Float

不管是float还是double,在存储中都分为三部分:

  • 第一位s代表符号位,1代表负数,0代表正数。
  • 第二个域是指数域e,对于单精度float类型,指数域有8位,可以表示0-255个指数值。指数值规定了小数点的位置,小数点的移动代表了所表示数值的大小。但是指数可以为正数,也可以为负数。为了处理负指数的情况,实际的指数值按要求需要加上一个偏差值作为保存在指数域中的值,单精度数的偏差值为 -127,而双精度double类型的偏差值为 -1023。比如,单精度指数域中的值为130,则表示实际的指数值=130-127=3。 偏差的引入使得对于单精度数,实际可以表达的指数值的范围就变成-127 到 128 之间(包含两端)。实际的指数值-127(保存为 全 0)以及 +128(保存为全1)保留用作特殊值的处理。这样,实际可以表达的有效指数范围就在 -126 和 +127 之间。
  • 第三个域为尾数域M,其中单精度数为 23 位长,双精度数为 52 位长。

Float = s * 2e-127 * m

在这里插入图片描述

举个栗子:将小数9.9转化为浮点数

  • 首先将9.9转换成24位二进制1001 . 1110 0110 0110 0110 0110
  • = 1 . 0011 1100 1100 1100 1100 110 * 2^3
  • 这里小数点前肯定是1,所以不需要存储。这样尾数域就是小数点的23位
  • 指数值e = 3 + 127 = 130 = 1000 0010
  • 符号位 = 0
  • 9.9 = 0 1000 0010 0011 1100 1100 1100 1100 110

0100 0001 0001 1110 0110 0110 0110 0110
0x411E6666

在线进制转换网站:https://lostphp.com/hexconvert/

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

编码-小数 的相关文章

  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • Linux系统的安装(在VM虚拟机上安装CentOS 7)

    工具准备 物理计算机一台 配置要求 操作系统 win10 64位 大家基本上都是 硬盘可用容量 20G以上 内存容量 4G以上 虚拟机安装包 VMware workstation full 12 5 下载链接 点我下载 提取码 9gha C
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • CentOS 7 关闭网络限制

    1 安装CentOS 7 3操作系统mini版本即可 2 设置关闭Selinux 编辑 etc selinux config vi etc selinux config SELINUX disabled 重启机器 查看selinux状态 s
  • mapengpeng1999@163.com 操作系统4~处理机调度

    处理机调度 1 三级调度体系 1 处理机调度主要是对处理机运行时间进行分配 即 按照一定算法或策略 将处理机运行时间分配给各个并发进程 同时尽量提高处理机的使用效率 2 现代操作系统中 按调度所实现的功能分3种类型 高级调度 中级调度和低级
  • Ubuntu 10.10下安装TFTP的步骤 tftp-hpa版本

    背景 由于想要在tq2440板子上用tftp下载kernel 所以要在自己的PC机的Ubuntu 10 10上安装tftp服务 所以就去网上找了些教程 但是很悲剧 按照那些教程去操作 结果还都是无法正常运行tftp服务 最后还是从一个外国人
  • ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 就是执行ps命令的那个时刻的那些进程 如果想要动态的显示进程信息 就可以使用top命令 要对进程进行监
  • 设备管理过程

    复杂度2 5 机密度2 5 最后更新2021 04 19 AIX中对设备会有如下五个操作 define aix下能看到设备的定义 但驱动程序并没有加载或初始化 该设备不可用 lsdev看到设备时defined 很多逻辑设备 vg lv等 只
  • gpuz怎么看显存颗粒

    gpuz可以帮助一些用户查看电脑的一切显卡参数 对于想要了解显卡的网友来说使用起来是非常方便的 不过有些网友是刚开始使用 还不知道gpuz怎么看显存颗粒 下面小编就教下大家gpuz查看显存颗粒的方法 首先 显存颗粒是显存的物理存储组成单元
  • InfoQ视频直播分享报名:前贝尔实验室、Oracle架构师为你在线揭秘分布式平台内核...

    报名方式 关注InfoQ微信公众号 ID infoqchina 回复 InfoQ 即可观看在线直播技术分享 分享地点 u0026amp 时间 InfoQ直播微课堂将在熊猫 TV 网站播出 看腻了卖肉的女主播 来看看QCon 的明星讲师如何
  • 【PDF】PDF无法注释的一种解决方案

    PDF无法注释 需要检查 1 权限问题 2 文档规范问题 PDF A 拓展阅读 浏览器打开PDF调整亮度和颜色的小技巧 处理pdf 文档的相关功能包总结 1 pdf文档不能注释 下载的一篇pdf文档在阅读时不能注释 高亮和打字机等选项都是灰
  • Elasticsearch 日志

    下载并安装 Filebeat 首次使用 Filebeat 请参阅入门指南 复制代码片段 curl L O https artifacts elastic co downloads beats filebeat filebeat 7 2 0
  • Linux学习--CentOS7.5

    CentOS7命令大全 Linux系统简介 Unix Linux发展史 Linux目录结构 树形结构 查看 切换以及创建目录 文本内容操作 grep工具 关机和重启 Linux命令 基本用法 ls list 使用通配符 mkdir 别名 g
  • Visual studio 2005 hangs on startup AppHangXProcB1 svchost devenv.exe svchost.exe:{2a811bb2-303b-48b...

    This problem has been torturing me for the whole afternoon and after searching on the web for a long time I finally get
  • Windows运行常用命令(win+R)

    1 calc 启动计算器 2 notepad 打开记事本 3 write 写字板 4 mspaint 画图板 5 snippingtool 截图工具 支持无规则截图 6 mplayer2 简易widnows media player 7 S
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • 操作系统常见面试题

    1 什么是进程 Process 和线程 Thread 有何区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体 是CPU调度和分派的基本单位 它是比进程更小的能
  • 磁盘调度算法笔记和练习题

    磁盘调度算法 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 练习题 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 它是一次只响应一个方向上的请求 这个方向上的请求都响应完了 再掉头处理另一个方向上的 有点
  • Linux(12):磁盘配额(Quota)与进阶文件系统管理

    磁盘配额 Quota 的应用与实作 Quota 的一般用途 针对 www server 例如 每个人的网页空间的容量限制 针对 mail server 例如 每个人的邮件空间限制 针对 file server 例如 每个人最大的可用网络硬盘
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • maven报错:不再支持源选项5。请使用6或更高版本

    maven报错 不再支持源选项5 请使用6或更高版本 maven报错 不再支持源选项5 请使用6或更高版本的解决方法 在pom xml文件中加入该配置
  • 诊断故障状态详解

    有些功能 ECU 在一个操作循环只检测一次 而对于更多的功能 ECU 可能会周期性的去检测 测试完成 test complete 测试结束和测试完成的概念是不一样的 只有有了测试结果才能称为测试完成 故障检测计数器 Fault Detect
  • How to Disable System Integrity Protection (rootless) in Mac OS X

    Turning Off Rootless System Integrity Protection in Mac OS X Again the vast majority of Mac users should not disable roo
  • 无人机自动驾驶仪的 MatLab 仿真

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器
  • 锚点应用(点击a标签滚动到指定的位置)

    css main gt div height 400px border 3px solid red html ul li a href aa 文章1 a li li a href bb 文章2 a li li a href cc 文章3 a
  • 核方法学习

    20201101 0 引言 核方法 kernel methods 核函数 核技巧 是一种能够将在原始数据空间中的非线性数据转化到高维线性可分的方法 而最开始学习机器学习的时候 也是在SVM中接触到的 不过在那个时候之后 就很少从理论层面来理
  • Java 用注解的方式(执行加了该注解的方法)

    Java 用注解的方式 执行加了该注解的方法 一个注释接口 随便一个类 一个测试类 输出生成一个文件 注解接口类 import java lang annotation ElementType import java lang annota
  • 【算法导论学习】分治法求最大子数组

    最大子数组 分治法 问题分析方向 对时间复杂度的分析 样例分析 问题分析 分解问题 解决问题 合并问题 对代码的设想 中间部分的处理 递归部分 时间复杂度分析 完整代码 分治法 所谓分治法 就是把问题不断分割变小 常见的是把数组分割为两部分
  • Unicode:Codejock Suite Prov22.1.0 for ActiveX Crack

    Codejock 荣获 2022 年 Visual Studio 杂志读者选择奖 Visual Studio 杂志宣布了第 28 届年度读者选择奖的获奖者 今年是 Visual Studio 杂志的读者对其 Visual Studio 相关
  • FOR循环基础功

    八个for循环运用小案例 一 for循环 语法 for 初始化 布尔表达式 更新 代码语句 1 最先执行初始化步骤 可以声明一种类型 但可初始化一个或多个循环控制变量 也可以是空语句 2 然后 检测布尔表达式的值 如果为 true 循环体被
  • Ubuntu系统不显示WiFi,已解决

    Ubuntu系统不显示WiFi 通常都是Secure Boot没有关闭 Win10的电脑 BIOS设置中都有一个secure boot选项 默认情况下 win10系统中的secure boot服务都是处于开启状态的 且无法进行关闭 各品牌w
  • 即时通讯源代码,im源码功能全套

    即时通讯源代码 im源码 im源代码 即时通讯全套源码语言 C C 语言编写 VC 开发平台产品包含完善的即时通讯系统 是一套集即时通讯和视频会议为一体的企业级办公协同交流产品 可以广泛应用于政府 企业 教育机构和公司等客户端 大致功能 具
  • arm neon RGB转Gray的例子

    确认处理器是否支持NEON cat proc cpuinfo grep neon 看是否有如下内容 Features swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva i
  • spring boot项目实战之工具篇(ognl)

    当解析复杂的json结构时 ognl是一个很方便的工具 实现基于图对属性的访问 类似于以 user name user depart 0 的方式获取json内的嵌套对象字段值 请看以下示例 你将对ognl的作用有一个更清晰的理解 Strin
  • windbg分析崩溃dmp

    首先我们收集了程序崩溃的dump文件 然后将dump文件拖拽到windbg下 然后依次如下命令 1 设置符号路径 sympath srv C symbols http msdl microsoft com download symbols
  • arduino字符串函数

    arduino教程 字符串函数 如果你需要操作文本 比如拷贝 增加文本 和定义文本数量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 String tex
  • HTTP协议0.91.0/1.1/2.0之间的区别

    HTTP 0 9 只有一个GET命令 服务器只能回应HTML格式的字符串 不能回应别的格式 服务器发送完毕 就关闭TCP连接 http 1 0 引入了POST命令和HEAD命令 短连接 每一个请求建立一个TCP连接 请求完成后立马断开连接
  • 定义变量的四种方式

    一 概括 var variable let 设置 允许 const constant常数 常量 隐士全局变量 二 对比 var方式 可以声明时赋值 也可以先声明后赋值 有声明提升过程 可以重复改动 声明赋值 let方式 可以声明时赋值 也可
  • JS手写代码:apply、call、bind

    一 call函数 Function prototype hycall function thisBings args thisBings thisBings null thisBings undefined Object thisBings
  • 编码-小数

    C语言中对于小数 采用float 单精度浮点型 和double 双精度浮点型 来存储 Float 不管是float还是double 在存储中都分为三部分 第一位s代表符号位 1代表负数 0代表正数 第二个域是指数域e 对于单精度float类