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

news2024/11/26 10:40:32

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缺少左右的小数位来完成正确的运算.

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

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

相关文章

2024CCPC郑州站超详细题解(含题面)ABFHJLM(河南全国邀请赛)

文章目录 前言A Once In My LifeB 扫雷 1F 优秀字符串H 随机栈J 排列与合数L Toxel 与 PCPC IIM 有效算法 前言 这是大一博主第一次参加xcpc比赛,虽然只取得了铜牌,但是收获满满,在了解了和别人的差距后会更加激励自己去学习,下面…

Linux修炼之路之权限

目录 引言 一:Linux中用户的分类 二:在Linux中的权限 1.权限的两种属性 1.人的属性 2.事物属性 -主要以文件属性为主 3.文件权限值的两种表示方式方法 2.更改文件访问者(拥有者,所属组,其他人)权限属性 3.更改文件的拥有…

vue3专栏项目 -- 四、前后端结合(下)

一、async 和 await 1、使用async 和 await 改造异步请求 在接触后端API以后就遇到了越来越多的异步请求,现在我们就使用async 和 await 改造异步请求。 async function是把返回内容包裹成个Promise返回Promise await 它在async function里面才起作用&#xff0…

【全开源】JAVA上门家政服务系统源码微信小程序+微信公众号+APP+H5

功能介绍 用户端:精准分类、支持家政、维修、万能服务、一口价、报价、线上、各类家政服务、优惠专区、师傅入驻、商家入驻、我的需求、补费明细、我的投诉 师傅端:接单池、消息通知、接单管理、今日订单、师傅入驻、我的钱包、实名认证 商家端&#…

【排序算法】之希尔排序

一、算法介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。希尔排序又称缩小增量排序,因 DL.Shell 于 1959 年提出而得名。它通过比较相距一定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减小&#xf…

系统设计 —— 随用户扩展

单服务器设置: 在单服务器设置中,所有内容都运行在一台服务器上。这包括网页应用程序、数据库、缓存等。 1*HQXZgCc5Vh8KooJHwKfzjw.png 图1.1 请求流程 1.最终用户通过域名(myurl.com)访问网站。请求发送到 DNS,将域名…

字符串函数(一):strcpy(拷贝),strcat(追加),strcmp(比较),及strncpy,strncat,strncmp

字符串函数 一.strcpy(字符串拷贝)1.函数使用2.模拟实现 二.strcat(字符串追加)1.函数使用2.模拟实现 三.strcmp(字符串比较)1.函数使用2.模拟实现 四.strncpy1.函数使用2.模拟实现 五.strncat1.函数使用2.…

[Kubernetes] sealos 部署 K8s v1.25.0 集群

文章目录 1.sealos 介绍2.操作系统基础配置3.安装部署 K8s4.验证 K8s 集群5.部署测试资源 1.sealos 介绍 Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。它采用云原生方式,摒弃传统的云计算架构,转向以 Kubernetes 为云内核的新架构。这使得企…

Python从0到POC编写--函数

数学函数: 1. len len() 函数返回对象(字符、列表、元组等)长度或项目个数, 例如: str "python" len(str)2. range range() 函数返回的是一个可迭代对象(类型是对象),…

安卓短视频一键搬运软件_V1.5.2 高级版

短视频一键搬运app是一款非常实用的视频处理软件,拥有各种各样的视频处理功能,可以帮助用户进行视频的多项处理,首先用户可以在这里为视频去除水印,打开视频文件过后,再把视频里面的水印内容框选出来,这样就…

从“金事通”带给我意想不到的来说--“数据是架构的中心”

背景 上周一个保险的销售人员来找我完成一定的售后流程。其中有一项是请我下载一个叫 金事通的 APP。说实在的我根本没听过。她说这是政治任务。我想不是有你们保险公司的APP了嘛。为什么还要我安装。没办法先安装吧。 经历了注册、人脸识别的步骤后。可以登录了。注册短信发…

Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程,现在是时候了解我们的明星了:响应式扩展,通常简称为Rx。微软开发了Reactive扩展库,使其易于处理事件流和数据流。在某种程度上,时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖…

交通地理信息系统实习教程(二)

这篇文章服务于GIS背景用户以及有志于GIS的朋友 操作源数据位置:【免费】交通地理信息系统实习二源数据资源-CSDN文库 软件安装包位置:【免费】TransCad-交通地理信息系统软件资源-CSDN文库 一、最短路径分析 1.1软件启动说明 这里需要给出一个必要的…

快来参加【顶尖赛事】LIC·2024 语言与智能技术竞赛

语言与智能技术竞赛(LIC)是由中国中文信息学会(CIPS)和中国计算机学会(CCF)联合主办,百度公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会承办的中文NLP顶级赛事&…

qt移植到imx6ull运行(qt部署到imx6ull)

这个事情对于小白来说确实不是很友好,会经常出现错误,我弄了两天终于弄好了 我主要参考了https://blog.csdn.net/m0_61738650/article/details/131269561 https://blog.csdn.net/m0_61738650/article/details/131171914这两个教程 我现在来简述一下流程…

AI+新能源充电桩数据集

需要的同学私信联系,推荐关注上面图片右下角的订阅号平台 自取下载。 随着我国新能源汽车市场的蓬勃发展,充电桩的需求量日益增加,充电桩的智能化程度不仅影响充电站运营商的经营效益,也大大影响着用户的充电体验。AI技术可以涵盖…

深入浅出:ConcurrentLinkedQueue源码分析与实战

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

C++青少年简明教程:C++中的常量、变量、表达式和语句

C青少年简明教程:C中的常量、变量、表达式和语句 在C编程中,常量、变量、表达式和语句是基本的编程概念。 常量(Constants):在程序中具有固定值的数据称为常量。常量可以是字面值,如整数、浮点数、字符或…

西门子博途WINCC动画之旋转运动

概述 本例将介绍在西门子 TIA Portal HMI 中旋转运动动画的一种实现方法。本例以风机、搅拌器和传送带为例,按下启动按钮开始转动,按下停止按钮停止转动。 第1步: 添加 PLC 设备。​博途TIA/WINCC社区VX群 ​博途TIA/WINCC社区VX群 选择西…

基于SpringBoot的酒店(预约)客房管理系统的设计与实现+毕业论文

系统介绍 酒店客房管理系统为酒店管理者和用户、清洁人员提供一个在线管理酒店客房的系统。在网站的设计中,一共分为了两个模块设计,一个是前台模块,一个是后台模块,前台主要用于提供查看客房信息,酒店资讯&#xff0…