C语言学习【C语言基本数据类型二】

C语言学习【C语言基本数据类型二】

_Bool类型

C99标准添加了_Bool类型,用于表示布尔值,即逻辑值truefalse,原则上仅占用1位存储空间;

float、double和long double

记数法示例

C标准规定,float类型必须至少能表示6位有效数字,且取值范围至少是 1 0 − 37   1 0 + 37 10^{-37} ~ 10^{+37} 1037 10+37,通常,系统存储一个浮点数要占用32位;其中8位用于表示指数的值和符号,剩下24位用于表示非指数部分(也叫作尾数或有效数)及其符号。

C语言提供的另一种浮点类型为double(意为双精度),double类型和float类型的最小取值范围相同,但至少必须能表示10位有效数字,一般情况下,double占用64位;

C语言的第3中浮点类型是long double,以满足比double类型更高的精度要求;

声明浮点型变量

float noah, jonah;
double trouble;

float planck = 6.63e-34;

long double gnp;

浮点型常量

浮点型常量的基本形式是:有符号的数字(包括小数点),后面紧跟e或者E,最后是一个有符号数表示10的指数:

-1.56E+12
2.87e-3

正好可以省略,可以么有小数点(如,2E5)或指数部分(如,19.28),但是不能同时省略两者:

3.14159
.2
4e16
.8E-5
100.

不要在浮点型常量中间加空格:1.56 E+12这种写法错误;

通常,编译器假定浮点型常量是double类型的精度,在浮点数后面加上fF后最可覆盖默认设置,使用lL后缀使得数字成为long double类型;

C99标准可以用十六进制表示浮点型常量,在十六进制数前加上十六进制前缀(0x0X),用pP分别代替eE,用2的幂代替10的幂,例如0xa.1fp10,十六进制a等同于十进制10.1f1/16加上15/256p10 2 10 2^{10} 2101024
0xa.1fp10表示的值是(10 + 1/16 + 15/256)X1024,即十进制10346.0

打印浮点值

/* 以两种方式显示float类型的值 */

#include "stdio.h"

int main(void)
{
    float aboat = 32000.0;
    double abet = 2.14e9;

    long double dip = 5.32e-5;

    printf("%f can be written %e\n", aboat, aboat);

    /* 编译器支持C99 或其中的相关特性 */
    printf("And it's %a in hexadecimal, power of 2 notation\n", aboat);

    printf("%f can be written %e\n", abet, abet);

    printf("%Lf can be written %Le\n", dip, dip);

    return 0;
}

程序输出结果

32000.000000 can be written 3.200000e+004
/* 编译器不支持C99 */
And it's 0x1.f40000p+14 in hexadecimal, power of 2 notation
2140000000.000000 can be written 2.140000e+009
0.000000 can be written 3.172882e-317

浮点值的上溢和下溢

/* 浮点值的上溢和下溢 */

#include "stdio.h"

int main(void)
{
    float toobig = 3.4E38 * 100.0f;

    printf("%e\n", toobig);

}

输出结果

1.#INF00e+000

上述程序为一个上溢(overflow)的示例,C语言规定,在这种情况放下给toobig赋值一个表示无穷大的值;

/* 浮点数舍入错误 */

#include "stdio.h"

int main(void)
{
    /* float 类型变量智能存储按指数比例缩小或方法的6或7位有效数字 */
    float a,b;
    b = 2.0e20 + 1.0;
    a = b - 2.0e20;

    printf("%f \n", a);

    return 0;

}

程序运行结果

4008175468544.000000

显而易见,结果是错误的,float缺少左右的小数位来完成正确的运算.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第33次CSP认证Q3:化学方程式配平

🍄题目描述 为了配平一个化学方程式,我们可以令方程式中各物质的系数为未知数,然后针对涉及的每一种元素,列出关于系数的方程,形成一个齐次线性方程组。然后求解这个方程组,得到各物质的系数。这样&#x…

免费SSL证书获取与部署教程

在互联网时代,HTTPS已成为网站安全的基石,为用户数据传输提供加密保障。免费SSL证书的出现降低了部署HTTPS的门槛,尤其对于个人网站、小微企业及测试环境而言,它们是理想的选择。本文旨在提供一份详尽指南,帮助您轻松获…

QLExpress入门及实战总结

文章目录 1.背景2.简介3.QLExpress实战3.1 基础例子3.2 低代码实战3.2.1 需求描述3.2.1 使用规则引擎3.3.2 运行结果 参考文档 1.背景 最近研究低代码实现后端业务逻辑相关功能,使用LiteFlow作为流程编排后端service服务, 但是LiteFlow官方未提供图形界面编排流程。…

穿越网络界限:探索NAT IPv4的神秘面纱

欢迎来到我的博客,代码的世界里,每一行都是一个故事 穿越网络界限:探索NAT IPv4的神秘面纱 前言NAT IPv4概述NAT IPv4的类型NAT IPv4的工作流程NAT IPv4的局限性和挑战 前言 在我们日常的网络使用中,我们或多或少都会遇到NAT&…

SAP:FI 财务凭证行项目文本前台修改

一、问题描述 财务凭证行项目文本点击修改,但是前台有的行可以修改,有的行是灰色的不能修改,如下图所示,这个文本信息有误,必须修改怎么办? 二、思路分析 有的行可以修改,有的行不能修改&#x…

【MySQL数据库】初步认识数据库,实现基本操作

在信息爆炸的今天,数据无处不在,它们构成了互联网世界的基石。但数据本身若未经有效组织和管理,就如同散落在沙滩上的珍珠,难以发挥其真正的价值。这时,“数据库”这一概念便如同一根线,将这些珍珠串联起来…

position:fixed无法固定到父盒子上面的解决方案

目录 问题如图所示: 下面是错误的代码: 解决方案1: 使用fixed固定定位固定到父元素: 解决方案2: 推荐使用的其他方案(粘性定位): 什么是粘性定位: 粘性定位的使用…

答辩PPT设计太耗时?aippt工具,AI一站式服务

这些网站我愿称之为制作答辩PPT的神! 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路,一窍不通。但这并不是你们的错,对于平时没接触过相关方面,第一次搞答辩PPT的人来说,这是很正常的一件事。一个好的答辩PPT…

搞懂Docker(九)- 使用Docker Compose

获取示例程序 示例程序 或者 示例程序 获取示例程序程序结构如下├── getting-started-app/ │ ├── package.json │ ├── README.md │ ├── spec/ │ ├── src/ │ └── yarn.lock使用Docker Compose Docker Compose是一个帮助你定义和共享多容器应用程序的工具…

在线数据库设计工具drawDB

什么是 DrawDB ? DrawDB 是浏览器中强大且用户友好的数据库实体关系(DBER)编辑器。只需点击几下即可构建图表、导出 SQL 脚本、自定义编辑器等等,无需创建帐户。 软件特点: DrawDB 是完全免费的无需注册或登录。只需投…

19.接口自动化-Jekins学习

1.CI-持续集成 频繁的(一天多次)将代码集成到主干 目的:让产品快速迭代,保持高质量 好处: 快速发现错误,每次更新都集成到主干,可以快速发现错误,定位错误也容易防止分支大幅偏离主…

字符串取第一个空格之后的所有的值字符串取第一个空格之后的第二个元素的值,不要后面的值

当我们后端返回值可能存在某些特定的值或标识导致返回数据不固定且是空格分割时,我们想取出返回字符串中的某个值,就可以参考下面对这个字符串进行操作提取,当然,如果是别的符号分割开的把下面的空格替换即可 1、字符串取第一个空…

C语言笔记14

指针1 在C语言中给内存单元的编号起了个名字叫做指针,通俗来说就是地址。(内存单元编号地址指针) 1.指针变量与地址 int a10; int* p&a; * 说明了这里p的是指针变量;int*说明p是一个整形指针&…

SpringBoot 实现对提供的接口进行 AES (加密,解密)

业务来源: 最近工作中,领导要求给别的项目组的小伙伴提供几个接口,要求对接口的参数进行解密操作,然后对返回的数据进行加密操作。 这时我想到了AES AES 是对称加密算法,优点:加密速度快;缺点…

生产环境磁盘变更方案

datanode磁盘扩容(1人天) 扩容磁盘 1.1 扩容前检查、新盘初始化 确定block副本统计正常,无丢块,无under-replicated 块 后台执行命令检查 hdfs dfs fsck / 无异常可进行以下步骤进行磁盘扩容 新盘初始化 ##格式化新盘,命令示例: mkfs.xfs /dev/sdc##挂载新盘,命令示…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落,直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等,在这众多的业务场景中,我们能看到各种各样的榜单。…

Allegro如何输出各层PCB视图的PDF文件

如何输出各层PCB视图的PDF文件 1、说明 用Allegro设计好PCB后,有时需要出各层的PDF文档出来进行汇报和展示,这时就需要将各层的平面视图全部以PDF的形式加载出来,具体方法如下。 2、PDF文件的输出方法(以四层板为例) …

网上跳蚤市场|基于SSM+vue的网上跳蚤市场系统的设计与实现(源码+数据库+文档)

网上跳蚤市场系统 目录 基于SSM+vue的网上跳蚤市场系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2会员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

如何内网穿透,远程访问内网设备

文章目录 0.前言1.准备工作2.内网穿透原理3.配置公网服务器的frp5.配置访问内网主机6.配置win10的远程桌面访问(win11类似)7.参考资料 0.前言 最近想研究一些新东西,公司的机器不敢乱搞,公司测试的服务器安装软件太多&#xff0c…

SQL Server服务启动缓慢或崩溃问题分析

关键词:SQL Server故障解决、服务启动缓慢、服务崩溃、日志文件清理 阅读建议:如果您遇到的是SQL Server服务启动缓慢或无法响应的问题,可以重点阅读文章的第一部分;如果是服务崩溃或重启的问题,可以重点关注第二部分。…