编程:单精度浮点型数据与双精度浮点型数据杂谈

单精度浮点型数据与双精度浮点型数据杂谈

文章目录

  • 单精度浮点型数据与双精度浮点型数据杂谈
  • 序言
  • 浮点数据类型
  • 内存占用
  • 精度与取值范围
    •   取值范围

序言

  在编程计算中,浮点型数据的运算常常用到。嵌入式编程中对于数据的传输,一般是扩大N被取整,在应用程序中虽然可以被直接使用,但是我个人常常思考浮点型数据具体在内存中的表现形式。本文经过查询参考资料后,做为一篇记录型的文章。如果错误之处,还望指正。

浮点数据类型

  浮点型数据在编程中分为单精度浮点型数据与双精度浮点型数据。
  常用float和double表示。针对Matlab变成需注意单精度表示为single。

内存占用

  单精度浮点型数据在内存中通常占用4Byte空间,双精度占用8Byte空间
  浮点型数据在内存中的整数和小数部分分别在不同的bit上来表示:
    float:0~22 bit表示小数部分;23~30 bit表示整数部分;31 bit表示符号。
    double:0~51 bit表示小数部分;52~62 bit表示整数部分;63 bit表示符号
    注意:浮点型数据不存在无符号数

精度与取值范围

  float类型精度为10E-7;double类型精度为10E-16。
  需要注意的是:float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字; double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
  同时受限于精度的影响,浮点型数据不可以直接用来判断某个条件的真或假(非)。

float a=1.0
if(a == 1)
{printf("true");
}
else
{printf("false);
}

如上这种判断有可能会导致判断错误。正确方式应为

float a=1.0
if(a-1.0 < 0.0000001)
{printf("true");
}
else
{printf("false);
}

  取值范围

  float:-3.40282E+308~-1.7549E-038 ; 1.17549E-038~3.40282E+308
  double:-1.79769E+308~ -2.22507E-308;
      2.22507E-308~1.79769E+308

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无线模块通过TCP/IP协议实现与PC端的数据传输解析

在当今的信息时代&#xff0c;无线通信技术的发展日新月异&#xff0c;为我们的工作和生活带来了极大的便利。其中&#xff0c;无线通信模块通过TCP/IP协议向PC端传送数据已经成为了一种常见的通信方式。 无线通信模块是一种能够在无线网络中进行数据传输的设备。它通常集成了…

vue面试题十四

一、Vue 3的Composition API主要包括哪些函数和钩子&#xff1f; Vue 3的Composition API主要包括以下几个方面的函数和钩子&#xff1a; 1. 响应式引用和状态 ref&#xff1a;用于创建响应式引用&#xff0c;接收一个值并返回一个响应式且可变的ref对象。在模板中可以直接访…

2024年【陕西省安全员C证】考试及陕西省安全员C证最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证考试参考答案及陕西省安全员C证考试试题解析是安全生产模拟考试一点通题库老师及陕西省安全员C证操作证已考过的学员汇总&#xff0c;相对有效帮助陕西省安全员C证最新解析学员顺利通过考试。 1、【多…

155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

【学习笔记】MySQL(Ⅲ)

MySQL(Ⅲ) 11、 进阶篇 —— 视图 11.1、概述 11.2、基本语法 11.3、检查选项 CASCADED 11.4、检查选项 LOCAL 11.5、视图的更新原则12、 进阶篇 —— 存储过程 12.1、概述 12.2、基本语法 12.3、系统变量 12.4、用户定义变量 …

x86计算机的启动初期流程 Linux 启动流程

x86计算机的启动初期流程 CPU&#xff1a; step1&#xff0c;加点开机&#xff0c;cpu自己初始化 step2&#xff0c;cpu 从物理地址 0xFFFFFFF0h 取指令执行&#xff1b;此处存放BIOS代码&#xff0c;这些代码可以是由主板自动从 EEPROM中拷贝至此内存地址处&#xff1b;即下…

MySQL 日志(二)

本篇将继续介绍MySQL日志的相关内容 目录 一、二进制日志 简介 注意事项 删除二进制日志 查看二进制日志 二进制日志的格式 二、服务器日志维护 一、二进制日志 简介 二进制日志中主要记录了MySQL的更改事件&#xff08;不包含SELECT和SHOW),例如&#xff1a;表的…

Java关键字

一、什么是关键字&#xff1f; 关键字是java语言中一些被赋予特定意义的一些单词&#xff0c;不可以把它当做标识符来使用。 在java中有两个特殊的关键字goto、const&#xff0c;我们称这两个关键字为保留字。 二、Java中的关键字有哪些&#xff1f; 1&#xff09;48个关键…

【刷力扣】23. 合并 K 个升序链表(dummy节点技巧 + 分治思维 + 优先队列)

目录 一、合并升序链表问题二、题目&#xff1a;[21. 合并两个有序链表](https://leetcode.cn/problems/merge-two-sorted-lists/description/)1、掌握dummy节点的技巧 三、题目&#xff1a;[23. 合并 K 个升序链表](https://leetcode.cn/problems/merge-k-sorted-lists/descri…

模拟题1(考虑周全以及情况较多)

牛客小白月赛96(重现赛)D题 题目解析以及注意事项 该题主要是找线路最多和最少的各种情况&#xff0c;从而达到整体连通图的构建代价最小的情况。 注意事项&#xff1a;a,b的正负影响着这个图的线尽可能的多还是少 思路图 { a ≥ b { b < 0 a < 0 : 能连的线都连上 b…

Android 工程副总裁卸任

Android 工程副总裁卸任 Android工程副总裁Dave Burke宣布&#xff0c;他将辞去领导Android工程的职位&#xff0c;将重心转向“AI/生物”项目。不过&#xff0c;他并没有离开Alphabet&#xff0c;目前仍将担任Android系统开发顾问的角色。 Burke参与了Android系统的多个关键…

CSS伪类与伪元素的区别

CSS中的伪类&#xff08;Pseudo-classes&#xff09;和伪元素&#xff08;Pseudo-elements&#xff09;是两个不同的概念&#xff0c;它们的主要区别在于它们的作用和目标。 伪类&#xff08;Pseudo-classes&#xff09; 伪类用于选择处于特定状态的元素。这些状态并不是由HT…

【TypeScript】类型兼容(协变、逆变和双向协变)

跟着小满zs 学习 ts&#xff0c;原文&#xff1a;学习TypeScript进阶类型兼容_typescript进阶阶段类型兼容 小满-CSDN博客 类型兼容&#xff0c;就是用于确定一个类型是否能赋值给其他的类型。如果A要兼容B 那么A至少具有B相同的属性。 // 主类型 interface A {name: string,a…

边界内聚和耦合

内聚 功能内聚 功能内聚是软件工程中一个重要的概念&#xff0c;它描述了一个模块内部各个元素之间的紧密程度。一个具有高功能内聚的模块意味着其内部的各个组件都共同完成一个具体的、明确的功能&#xff0c;并且这些组件之间的联系不是偶然的&#xff0c;而是因为它们共同服…

快手爬票概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 无论是出差还是旅行&#xff0c;都无法离开交通工具的支持。现如今随着科技水平的提高&#xff0c;高铁与动车成为人们喜爱的交通工具。如果想要知道…

【C语言】联合(共用体)

目录 一、什么是联合体 二、联合类型的声明 三、联合变量的创建 四、联合的特点 五、联合体大小的计算 六、联合的应用&#xff08;判断大小端&#xff09; 七、联合体的优缺点 7.1 优点 7.2 缺点 一、什么是联合体 联合也是一种特殊的自定义类型。由多个不同类型的数…

SqlSugar 集成

1 关于 SqlSugar SqlSugar 是 .NET/C# 平台非常优秀的 ORM 框架&#xff0c;目前 Nuget 总下载突破 700K&#xff0c;Github 关注量也高达 3.2K&#xff0c;是目前当之无愧的国产优秀 ORM 框架之一。 SqlSugar 官方地址&#xff1a;果糖网 &#xff08; SqlSugar 官网 &#…

LVS三种负载均衡模式:NAT、Tunneling和DR的技术对比

1. LVS-NAT 模式的特性 IP使用&#xff1a;RS&#xff08;Real Server&#xff09;应使用私有地址&#xff0c;RS的网关必须指向DIP&#xff08;Director IP&#xff09;。网络范围&#xff1a;DIP和RIP必须在同一个网段内。数据包处理&#xff1a;请求和响应报文都需要经过Di…

Vue 3 组合式编程:革新前端开发的新时代

Vue.js作为一种流行的前端框架&#xff0c;因其简洁、灵活和高性能而深受开发者喜爱。随着前端开发需求的不断演变和复杂度的增加&#xff0c;Vue.js也在不断地进化和改进。Vue 3的推出标志着Vue.js进入了一个新的阶段&#xff0c;其中最重要的一个变化就是引入了组合式编程&am…

数据库开发——并发控制(第十一章)

文章目录 前言并发执行例题一、封锁二、封锁协议三、可串行调度四、总结 学习目标&#xff1a;重点为并发控制的基本概念及几个基本协议 前言 数据库管理系统必须提供并发控制机制&#xff0c;保证事务的隔离性和一致性 并发执行例题 一、封锁 排他锁称为写锁&#xff0c;共…