C++100-C++拓展002-float精度问题

news2024/11/23 15:07:10

文章目录

  • C++100-C++拓展002-float精度问题
    • 摘要
    • C++float精度问题
      • C++浮点float基本格式
      • C++查看数据范围
    • 在线练习:
    • 总结

C++100-C++拓展002-float精度问题

在这里插入图片描述

摘要

本系列为C++学习系列,会介绍C++基础语法,基础算法与数据结构的相关内容。本文为C++拓展内容,包括float精度为6-7的问题,并提供相关案例练习。

在线练习:
http://noi.openjudge.cn/

C++float精度问题

参考:http://c.biancheng.net/view/2330.html

C++浮点float基本格式

计算机中浮点数采用的是IEEE 754标准。浮点数分为单精度浮点数(32位)和双精度浮点数(64位)。浮点数的基本格式如下:
在这里插入图片描述

sign:符号位,0表示正,1表示负
exponent:阶码,浮点数的幂次。一般采用移码表示。
fraction:浮点数的小数部分

主要是这两种变量占用的内存数不同,float 型4个字节,32位;double型8个字节,64位。它们在内存中是按科学计数法来存储的,而且float和double的精度是由尾数的位数来决定的:

①对于float 型浮点数来说,
符号位占1位,
阶码(指数位)占8位,无符号8位表示0-255,去除全0和1后是1-254,减去偏移量127,就是-126-127。2的-126次幂是1.175E-38,2的(127)次幂=3.4E38。数字介于 ±3.4E-38 和 ±3.4E38 之间。
尾数位23位,则有2^23 = 8388608,一共七位有效数字(能保证的为6位),即float的精度为6-7位有效数字。

②类似的对于double 型浮点数来说:
符号位占1位,
阶码(指数位)占11位,2的11次幂=2048,去除去除全0和1后是1-2047,减去偏移量1023,就是-1022和1024,为了简化,采用正负都为1024次幂。2的-1022次幂对应2.225E-308,2的1024次幂对应1.7976931348623157E308
尾数位52位,2^52= 4503599627370496,共16位,即double型数的精度为15~16位。

C++查看数据范围

#include <iostream>
#include <climits>
#include <cfloat>

using namespace std;

int main() {
    cout << "int 最大值:" << INT_MAX << '\n';
    cout << "int 最小值:" << INT_MIN << '\n';
    cout << "float 最大值:" << FLT_MAX << '\n';
    cout << "float 最小值:" << FLT_MIN << '\n';
    cout << "double 最大值:" << DBL_MAX << '\n';
    cout << "double 最小值:" << DBL_MIN << '\n';
    cout << "long 最大值:" << LONG_MAX << '\n';
    cout << "long 最小值:" << LONG_MIN << '\n';
    cout << "long long 最大值:" << LONG_LONG_MAX << '\n';
    cout << "long long 最小值:" << LONG_LONG_MIN << '\n';
    cout << "unsigned long long 最大值:" << ULONG_LONG_MAX << '\n';
    
    
}

输出:
在这里插入图片描述

在线练习:

http://noi.openjudge.cn

总结

本系列为C++学习系列,会介绍C++基础语法,基础算法与数据结构的相关内容。本文为C++拓展内容,包括float,double精度,并提供相关案例练习。

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

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

相关文章

linux安装

我们在部暑的时候 总要用到linux 所以我们可以提前把linux安装好 准备一个安装好的linux 到时直接克隆出来用就可以一 安装linux1). 选择创建新的虚拟机2). 选择"典型"配置3). 选择"稍后安装操作系统(S)"4). 选择"Linux"操作系统,"CentOS7 …

IAR警告抑制及还原

工作中需要临时抑制 警告 Pa084&#xff0c;源代码如下&#xff1a; sy_errno_t sy_memset_s(void *dest, sy_rsize_t dmax, int value, sy_rsize_t n) { sy_errno_t err; if (dest NULL) { return SY_ESNULLP; } if (dmax > SY_RSIZE…

「C语言进阶」数据内存的存储

&#x1f680;&#x1f680;&#x1f680;大家觉不错的话&#xff0c;就恳求大家点点关注&#xff0c;点点小爱心&#xff0c;指点指点&#x1f680;&#x1f680;&#x1f680; 目录 &#x1f430;数据类型的介绍 &#x1f430;类型的意义 &#x1f430;数据类型的基本归类…

引入短信服务发送手机验证码进行安全校验

其他方案>引入QQ邮箱发送验证码进行安全校验 相对短信验证码&#xff0c;操作更简单而且免费 最近想给自己的项目在注册时加点安全校验&#xff0c;准备使用免费的邮箱验证来着&#xff0c;在上一篇引入QQ邮箱进行安全校验时&#xff0c;看有朋友说阿里云会送一些短信服务免…

论文阅读 | Video Super-Resolution Transformer

引言&#xff1a;2021年用Transformer实现视频超分VSR的文章&#xff0c;改进了SA并在FFN中加入了光流引导 论文&#xff1a;【here】 代码&#xff1a;【here】 Video Super-Resolution Transformer 引言 视频超分中有一组待超分的图片&#xff0c;因此视频超分也经常被看做…

【网络原理4】TCP特性篇

目录 一、滑动窗口 传统发送接收机制的缺点 滑动窗口的特性 发送方什么时候会接着发送下一条报文 如果在滑动窗口的机制下面发生了丢包会怎样处理 情况1&#xff1a;ack丢了 情况2&#xff1a;主动发送的syn丢包了 滑动窗口的应用场景 二、TCP流量控制&#xff1a;根据接…

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务

前言&#xff1a;搭建大数据环境集群环境算是比较麻烦的一个事情&#xff0c;并且对硬件要求也比较高其中搭建大数据环境需要准备jdk环境和zk环境&#xff0c;还有hdfs&#xff0c;还有ssh之间的免密操作&#xff0c;还有主机别名访问不通的问题 等。必然会出现的问题&#xff…

拆个微波炉,分析一下电路

微波炉是用2450MHz的超高频电磁波来加热食品&#xff0c;它能无损穿越塑料&#xff0c;陶瓷&#xff0c;不能穿越金属&#xff0c;碰到金属会反射&#xff0c;但穿过含水食物&#xff0c;食物内的分子会高速摩擦&#xff0c;产生热量&#xff0c;使食物变熟。在厨房电器中&…

自学180天,我从功能测试进阶到自动化测试了...

大家好&#xff0c;我是彭于晏&#xff0c;一个7年测试工作的老司机。因为我一直在分享自动化测试技术&#xff0c;所以时常会被问到这个问题&#xff1a;“靓仔&#xff0c;功能测试想转自动化测试&#xff0c;请问要怎么入手&#xff1f;” 那么&#xff0c;接下来我就结合自…

不愧是GitHub点赞飙升的Java10W字面经,面面俱到,太全了!

最新的喜报啊&#xff0c;话不多说&#xff0c;先看图&#xff01;&#xff08;为了保护朋友的隐私&#xff0c;同时还有我自己的隐私&#xff0c;楼主就都打码了~&#xff01;&#xff09; 朋友说到这儿时候我就跟他说&#xff0c;不要只看眼前&#xff0c;要看长远一些&#…

前端开发之防抖与节流

前端开发中我们经常会通过监听某些事件来完成项目需求 1.通过监听 scroll 事件&#xff0c;检测滚动位置&#xff0c;根据滚动位置显示返回顶部按钮 2.通过监听 resize 事件&#xff0c;对某些自适应页面调整DOM的渲染&#xff08;通过CSS实现的自适应不再此范围内&#xff09;…

动态库和静态库的区别

什么是库文件 一般来说&#xff0c;一个程序&#xff0c;通常都会包含目标文件和若干个库文件。经过汇编得到的目标文件再经过和库文件的链接&#xff0c;就能构成可执行文件。库文件像是一个代码仓库或代码组件的集合&#xff0c;为目标文件提供可直接使用的变量、函数、类等…

Hadoop3.3.0--Linux编译安装

Hadoop3.3.0–Linux编译安装 基础环境&#xff1a;Centos 7.7 编译环境软件安装目录 mkdir -p /export/server一、Hadoop编译安装&#xff08;选做&#xff09; 可以直接使用课程提供已经编译好的安装包。 安装编译相关的依赖 yum install gcc gcc-c make autoconf automake…

leaflet 上传CSV文件,导出geojson格式文件(064)

第064个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载CSV文件,将图形显示在地图上。点击导出geojson,下载成geojson文件。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共114行)安装插件…

如何判断是否ChatGPT回答出来的问题?解决方法详解

目录 前言 一、人工智能&#xff08;“ChatGPT”等&#xff09;能淘汰人类吗&#xff1f; 二、完全禁止或严格限制使用ChatGPT&#xff0c;是利大于弊还是&#xff1f; 1、ChatGPT与造纸术优点 2、人有悲欢离合&#xff0c;月有阴晴圆缺&#xff0c;此事古难全&#xff01…

Python基础-数据类型之序列

序列&#xff1a;一种数据结构&#xff0c;序列中的每个元素都会被分配到一个序号&#xff08;元素的位置&#xff09;。 常用的序列有&#xff1a;列表、元组、字符串。 一、序列的操作&#xff1a; 1&#xff1a;通过索引取值 nums_list [1,2,3,4] print(nums_list[0]) …

消息队列的特点

一、背景&#xff1a;在分布式系统中是如何处理高并发的由于在高并发的环境下&#xff0c;来不及同步处理用户发送的请求&#xff0c;则会导致请求发送阻塞。比如说&#xff0c;大量的insert、update之类的请求同时到达数据库MYSQL&#xff0c;直接导致无数的行锁表锁&#xff…

零基础机器学习做游戏辅助第十一课--原神自动钓鱼(一)

一、序言 前面我们已经学习了神经网络,卷积神经网络和强化学习等内容,也都做了对应的实例。但是我们的课是做游戏辅助,那么肯定要去游戏里实战一番。 今天就带领大家用我们所学的知识对近两年非常火爆的游戏《原神》进行实战。我们以自动钓鱼为例。 二、观察游戏玩法制定方案…

Seata源码学习(五)- Seata服务端(TC)源码解读

Seata源码分析- Seata服务端&#xff08;TC&#xff09;源码解读 上节课我们已经分析到了SQL语句最终的执行器&#xff0c;但是再往下分析之前&#xff0c;我们需要先来分析一下TM客户端与TC端通讯以后&#xff0c;TC端的具体操作 服务端表解释 我们的Seata服务端在应用的时…

RabbitMq及其他消息队列

消息队列中间价都有哪些 先进先出 Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ、ActiveMQ 架构 消费推拉模式 客户端消费者获取消息的方式&#xff0c;Kafka和RocketMQ是通过长轮询Pull的方式拉取消息&#xff0c;RabbitMQ、Pulsar、NSQ都是通过Push的方式。 pull类型的消息队…