再学C语言8:数据类型(6)——float和其他类型

news2024/11/24 8:50:33

一、_Bool类型

_Bool类型由C99引入

_Bool类型用于表示布尔值:逻辑值true(真)和false(假)

C用值1表示true,用值0表示false,所以_Bool类型本质上也是一种整数类型

二、float、double和long double

计数法:

数字科学计数法指数计数法
10001.0\times 10^{3}1.0e3

C语言中的浮点数表示类似于科学计数法

C标准规定,float类型必须至少能表示6位有效数值,取值范围至少为10^{-37}10^{37}

通常系统使用32位存储一个浮点数,其中8位用于表示指数及其符号,24位用于表示非指数部分(称为尾数或有效数字)及其符号

double(双精度)类型:和float类型具有相同的最小取值范围要求,但必须至少能表示10位有效数字

一般地,double使用64位长度,一些系统将多出的32位全部用于尾数部分,以增加数值的精度,一些系统将其中的一些位分配给指数部分,以容纳更大的指数,增加可以表示的数的范围

long double:可以满足比double类型更高的精度要求

1. 浮点变量声明

float a;
float b = 3.14e-6;

2. 浮点常量

-1.56E+12
2.8e-5

表示浮点常量时中间不要使用空格

默认情况下,编译器将浮点常量当做double类型,例:

some = 4.0 * 3.0

4.0和3.0被存储为double类型,通常使用64位进行存储,乘积运算使用双精度,结果被截取为正常的float类型

C中可以通过f或F后缀使编译器把浮点常量当做float类型,如2.4f和5.5F

C中可以通过l或L后缀使编译器把浮点常量当做long double类型,如3.2l和8.1e3L

没有后缀的浮点常量为double类型

C99位浮点常量新添加一种十六进制格式:

0xa.1fp10

a是10,.1f表示1/16+15/256,p10表示2^{10},整个数的十进制值为10364.0

3. 浮点值打印

printf()函数使用%f格式说明符打印十进制计数法的float和double数字,用%e打印指数计数法的数字;打印long double类型需要%Lf、%Le说明符

示例:

#include <stdio.h>
int main(void)
{
    float a = 32000.0;
    double float b = 3.11e8;
    long double float c = 5.2e-6;

    printf("%f can be written as %e\n", a, a);
    printf("%f can be written as %e\n", b, b);
    printf("%f can be written as %e\n", c, c);
    return 0;
}

运行结果:

 4. 浮点值的上溢和下溢

上溢:计算结果是一个大得不能表达的数时,会发生上溢

下溢:对于一个能用对浮点值可用的全部精度进行表示的最小数字进行除法运算,会导致尾数部分右移,损失有效数字,得到一个低于正常的值,该过程称为下溢

NaN(Not-a-Number):一个特殊的浮点值

示例:浮点数舍入误差

#include <stdio.h>
int main(void)
{
    float a, b;
    float c, d;

    b = 2.0e20 + 1.0;
    a = b - 2.0e20;

    d = 2.0e6 + 1.0;
    c = d - 2.0e6;

    printf("%f \n", a);
    printf("%f \n", c);
    return 0;
}

运行结果: 

原因:计算机缺乏足够的进行正确运算所需的十进制位数

三、复数和虚数

3种复数类型:float_Complex、double_Complex、long double_Complex;float_Complex变量包含两个float值,一个表示复数的实部,另一个表示复数的虚部

3种虚数类型:float_Imaginary、double_Imaginary、long double_Imaginary

四、其他类型

C没有字符串类型,但是仍然可以很好地处理字符串

C从基本类型中衍生出其他类型:数组、指针、结构、联合

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

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

相关文章

查找排序编程题——二分查找+冒泡排序‍♀️

目录 7-1 二分查找 输入格式: 输出格式: 输入样例: AC&#xff1a; 7-2 冒泡法排序 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; AC&#xff1a; 附&#xff1a; 分享&#x1f31e; &#xff1a; 前途与玫瑰 来日与方…

尝试使用LTTng+TraceCompass分析一下进程周期偏移

准备工作 我先是在板子里通过LTTng Stream的方式将log保存在了上位机里。 然后在上位机中打开TraceCompass分析log。 导出整理log数据 然后我在events表格中搜索我的进程名&#xff0c;发现主要是sched_switch sched_waking sched_wakeup这三类。 然后我又搜索了一下&#x…

10个最好的WordPress RSS插件比较(2022)

您是否正在为您的网站寻找最好的 WordPress RSS 提要插件&#xff1f; RSS 提要插件可以轻松地自动从其他网站提取内容并将其显示在您的网站上。它们还可用于提高参与度、增加流量和增加页面浏览量。 在本文中&#xff0c;我们将分享我们挑选的可在您的网站上使用的最佳 Word…

远眺捷码智慧乡村方案赋能乡村治理,打造更智慧更宜居的乡村

01.智慧乡村治理重要性 “智慧乡村”是以云计算、大数据应用、地理信息系统网络、物联网技术为核心&#xff0c;通过构建服务于政务管理、农业增收、民生幸福等方面的系统应用平台&#xff0c;将社会基础信息、产业发展、环境监测、医疗卫生、劳动保障、社会管理、公共服务等要…

全面便捷的数据管理能力,助力数据运营降本增效

对于任何企业来说&#xff0c;销售和供应链总是天平秤座的两端。如何放置两个砝码是对企业管理能力的极大考验。今天&#xff0c;让我们来谈谈供应链管理的例子来探讨一下对于报表工具而言&#xff0c;怎么样才能让客户全面、便捷的全局管理数据接入。背景&#xff1a;有序的供…

SPRING-了解4-AOP1

主要理念&#xff1a;不用继承&#xff0c;而是用Java Reflect类中的Proxy来实现对方法的增强 面向切面编程 oop的延续&#xff0c;对业务进行隔离&#xff0c;降低耦合度&#xff0c;目标是不改变原来的代码在主干中增加新功能 比如已经写好登录功能&#xff0c;现在需要加…

【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)

流数据和流计算 在大数据时代&#xff0c;数据可以分为静态数据和流数据&#xff0c;静态数据是指在很长一段时间内不会变化&#xff0c;一般不随运行而变化的数据。流数据是一组顺序、大量、快速、连续到达的数据序列&#xff0c;一般情况下数据流可被视为一个随时间延续而无…

脑白质WM中的血流动力学响应函数HRF的特性

血流动力学响应函数HRF 估计BOLD信号的血流动力学响应函数(HRF)对于解释和分析与事件相关的fMRI数据至关重要广义线性模型(GLM)假设BOLD信号是真实反应与HRF进行卷积而得到的 一般来说&#xff0c;白质中功能激活的检测灵敏度远低于灰质&#xff0c;并且激活区域一般较小 原因…

[附源码]Nodejs计算机毕业设计健身房管理系统设计Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

J-003 Jetson电路设计之USB设计--NANO XAVIER NX

USB设计1 简介2 框图介绍3 USB HUB设计3.1电源部分3.2 芯片引脚3.3 晶振电路4 电源控制4.4 电源开关电路设计4 调试USB电路设计1 简介 NANO & XAVIER NX提供三路USB接口&#xff0c;其中包含一路调试USB&#xff08;用于镜像下载&#xff09;和一路USB3.2接口。引脚说明: …

编码踩坑——MySQL更新存放JSON的字段、\“ 转义成 “

本篇介绍在执行MySQL线上变更时遇到的问题&#xff0c;表现为"更新JSON字段时&#xff0c;实际更新的值与SQL语句中的值不一致&#xff0c;JSON格式错误"&#xff0c;如下&#xff1b; 问题描述 处理线上问题&#xff0c;需要新插入一条记录&#xff1b;将原JSON粘贴…

Jenkins(2)— 配置webhooks触发器

1、项目配置 项目配置 >> 构建触发器 >> 选择Gitee webhook触发器 生成Gitee WebHook密码&#xff1a;46d678257c0399b105635bcb9722ea09 2、Gitee配置 Gitee项目 >> 管理 >> 配置WebHooks 注意&#xff1a; 由于我的jenkins是部署在本地的&#xff…

element-ui+js+vue——实现图片的放大缩小拖动等功能——技能提升

elementuijsvue——实现图片组件的封装 1. 实现图片的放大缩小 2. 实现图片的拖动功能 3. 实现图片的预览最近同事在写一个关于 图片放大缩小拖动的功能&#xff0c;其实不止是图片&#xff0c;只要是在以下组件中的内容&#xff0c;都是可以支持放大缩小拖动的。 功能&#x…

Web前端项目的跨平台桌面客户端打包方案之——CEF框架

文章目录1、什么是CEF2、测测你电脑里的CEF3、从0开始的CEF入门实例1、什么是CEF CEF是什么 概念 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件。 CEF的目标是为第三方应用提供可嵌入浏览器支持。CEF隔离底层Chromium和Blink的复杂代码…

靠着数套的Java刷题PDF,成功“混进”腾讯T3

昨晚半夜&#xff0c;一个学Java的老弟突然打电话告诉我他拿到了腾讯T3的offer&#xff0c;说实话&#xff0c;我有点诧异。。。 这老弟也是渣硕一枚&#xff0c;去投岗了腾讯的Java后台开发岗位。等了一个星期后简历被放回池子里了&#xff0c;眼看着提前批马上就要截止了&am…

jsp+ssm计算机毕业设计多媒体课程精品课程网站【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

海量数据小内存!从未出现过的数在哪里

文章目录题目要求1&#xff09;内存 1G2&#xff09;内存 3 KB3&#xff09;内存 有限变量举例题目 现在有 40 亿个无符号整数&#xff0c;无符号整数的范围是 0 ~ 232-1&#xff08;42亿&#xff09;&#xff0c;哪怕 40 亿个数完全不同&#xff0c;在该范围中也总有没有出现…

傻白探索Chiplet,关于EPYC Zen2 的一些理解记录(五)

目录 一、知识铺垫 &#xff08;1&#xff09;Chiplet &#xff08;2&#xff09;Zen架构 &#xff08;3&#xff09;EPYC和Ryzen &#xff08;4&#xff09;EPYC Zen2 二、关于EPYC Zen2里的部件 &#xff08;1&#xff09;内存控制器 &#xff08;2&#xff…

Python本地下载-实例的SQL审计日志

简介&#xff1a;使用阿里云的RDS数据库&#xff0c;开启DAS的数据库治理服务。会产生大量的审计日志。 我们有2T的审计日志数据&#xff0c;保留180天&#xff0c;每小时收费空间&#xff1a;0.008元/GB/小时 计算下来&#xff1a;2x1024x 24x 30 x 0.008 11796 元 解决&…

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类) 目录 分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)基本描述模型结构设计过程参考资料基本描述 传统的语音识别技术,主要在隐马尔可夫模型和高斯混合模型两大”神器“的加持…