c语言标准库详解(十五):limits.h与float.h

news/2024/11/25 13:53:43/

c语言标准库详解(十五):<limits.h>与<float.h>

概述

<limits.h>

头文件<limits.h>定义了一些表示整型大小的常量。以下所列的值是可接受的最小值,在实际系统中可以使用更大的值。

备注
CHAR_BIT8char 类型的位数
CHAR_MAXUCHAR_MAX 或 SCHAR_MAXchar 类型的最大值
CHAR_MIN0 或 SCHAR_MINchar 类型的最小值
INT_MAX32767int 类型的最大值
INT_MIN-32767int 类型的最小值
LONG_MAX2147483647long 类型的最大值
LONG_MIN-2147483647long 类型的最小值
SCHAR_MAX+127signed char 类型的最大值
SCHAR_MIN-127signed char 类型的最小值
SHRT_MAX+32767short 类型的最大值
SHRT_MIN-32767short 类型的最小值
UCHAR_MAX255unsigned char 类型的最大值
UINT_MAX65535unsigend int 类型的最大值
ULONG_MAX4294967295unsigned long 类型的最大值
USHRT_MAX65535unsigned short 类型的最大值

<float.h>

下表列出的名字是<float.h>的一个子集,它们是与浮点算术运算相关的一些常量。给出的每个值代表相应量的最小取值。各个实现可以定义适当的值。

备注
FLT_RADIX2指数表示的基数,例如 2、16
FLT_ROUNDS-1(无法确定);0(趋向于0);1(趋向最近的值);2(趋向于正无穷);3(趋向于负无穷)加法的浮点舍入模式
FLT_DIG6表示精度的十进制数字
FLT_EPSILON1E-5最小的数 x,x 满足:1.0 + x ≠ 1.0
FLT_MANT_DIG-尾数中的数(以 FLT_RADIX 为基数)
FLT_MAX1E+37最大的浮点数
FLT_MAX_EXP-最大的数 n,n 满足 FLT_RADIX^n-1 仍是可表示的
FLT_MIN1E-37最小的规格化浮点数
FLT_MIN_EXP-最小的数 n,n 满足:10^n是一个规格化数
DBL_DIG10表示精度的十进制数字
DBL_EPSILON1E-9最小的数 x,x 满足:1.0 + x ≠ 1.0
DBL_MANT_DIG-尾数中的数(以 FLT_RADIX 为基数)
DBL_MAX1E+37最大的双精度浮点数
DBL_MAX_EXP-最大的数 n,n 满足 FLT_RADIX^n-1 仍是可表示的
DBL_MIN1E-37最小的规格化双精度浮点数
DBL_MIN_EXP-最小的数 n,n 满足:10n是一个规格化数

示例

<limits.h>

代码:

#include <stdio.h>
#include <limits.h>
int main()
{printf("The number of bits in a byte %d\n", CHAR_BIT);printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);printf("The maximum value of SHORT INT = %d\n", SHRT_MAX); printf("The minimum value of INT = %d\n", INT_MIN);printf("The maximum value of INT = %d\n", INT_MAX);printf("The minimum value of CHAR = %d\n", CHAR_MIN);printf("The maximum value of CHAR = %d\n", CHAR_MAX);printf("The minimum value of LONG = %ld\n", LONG_MIN);printf("The maximum value of LONG = %ld\n", LONG_MAX); return(0);
}

输出:

PS G:\CSAPP>  & 'c:\Users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-mq52rrfg.0x4' '--stdout=Microsoft-MIEngine-Out-ip53akbp.xpk' '--stderr=Microsoft-MIEngine-Error-w2wgdudi.u2t' '--pid=Microsoft-MIEngine-Pid-2z44vy4h.eqv' '--dbgExe=G:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe' '--interpreter=mi'
The number of bits in a byte 8
The minimum value of SIGNED CHAR = -128
The maximum value of SIGNED CHAR = 127
The maximum value of UNSIGNED CHAR = 255
The minimum value of SHORT INT = -32768
The maximum value of SHORT INT = 32767
The minimum value of INT = -2147483648
The maximum value of INT = 2147483647
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -2147483648
The maximum value of LONG = 2147483647
PS G:\CSAPP>

<float.h>

代码:

#include <stdio.h>
#include <float.h>
int main()
{printf("The maximum value of float = %.10e\n", FLT_MAX);printf("The minimum value of float = %.10e\n", FLT_MIN);printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}

输出:

PS G:\CSAPP>  & 'c:\Users\swy\.vscode\extensions\ms-vscode.cpptools-0.27.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-vvxt3sdn.m45' '--stdout=Microsoft-MIEngine-Out-lxfp3hgw.ny4' '--stderr=Microsoft-MIEngine-Error-uyop3yxf.gya' '--pid=Microsoft-MIEngine-Pid-flbfwpeh.hj3' '--dbgExe=G:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe' '--interpreter=mi' 
The maximum value of float = 3.4028234664e+038
The minimum value of float = 1.1754943508e-038
The number of digits in the number = 1.1857575500e-322
PS G:\CSAPP> 

http://www.ppmy.cn/news/715018.html

相关文章

ARM Cortex-M4F微处理器

1.1 ARM体系结构及微处理器器 1.1.1 ARM的商业模式 ARM&#xff08;Advance RISC&#xff08;Reduced Instruction set Computer&#xff09; Machine 高级精简指令集机器&#xff09;公司自身不制造处理器硬件&#xff0c;而是设计处理器&#xff0c;并将其设计授权给商业合作…

图解大数据 | 分布式平台Hadoop与Map-Reduce详解

作者&#xff1a;韩信子ShowMeAI 教程地址&#xff1a;https://www.showmeai.tech/tutorials/84 本文地址&#xff1a;https://www.showmeai.tech/article-detail/168 声明&#xff1a;版权所有&#xff0c;转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 1.Ha…

LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等

本文参考Package documentationhttp://mirrors.ctan.org/graphics/pgf/contrib/tikz-imagelabels/tikz-imagelabels.pdf &#xff08;2019年6月27日版本的文档&#xff09; 如果需要添加更复杂的元素&#xff0c;如矩形等&#xff0c;可参考我的下一篇博文 LaTeX在图片上面使…

【MR】现代机器人学-UR5机械臂正向动力学仿真-2(零外力、零关节力矩、初始J2=-1rad)...

Python计算仿真生成路径点csv文件&#xff0c;coppeliasim加载路径点进行可视化演示。 仿真截图 Coppeliasim加载仿真结果视频演示 Python程序&#xff1a;基于MR算法库的正向动力学仿真 import numpy as np import modern_robotics as mr from pprint import pprintnp.set_pri…

用css画一个csdn程序猿

效果如下&#xff1a; 头部 我们先来拆解一下&#xff0c;程序猿的结构 两只耳朵和头是圆形组成的&#xff0c;耳朵内的红色部分也是圆形 先画头部&#xff0c;利用圆角实现头部形状 借助工具来快速实现圆角效果 https://9elements.github.io/fancy-border-radius/ <div…

视频目标检测与轨迹跟踪代码案例

前言 通过阅读相关文献及测试&#xff0c;找到了一种基于多模板匹配的改进方法&#xff0c;可以对遥感视频卫星中的移动目标进行探测&#xff0c;并绘制其轨迹。根据实验结果发现&#xff0c;可以比较有效的对运动目标进行跟踪。 一、原理 核心思想比较简单。即通过不同旋转角度…

Cortex-M4

系统内核 总线框架数据存储中断异常寄存器异常返回Systick延时处理器模式任务切换 总线框架 数据存储 中断异常 寄存器 异常返回 Systick延时 /*** brief 延时程序&#xff0c;单位us* param 延时数量* retval None* note 主频180Mhz, 8分频作为时钟源*/ void delay_us(uint…

pytorch实战13:基于pytorch实现YOLOv1(长长文)

基于pytorch实现YOLOv1&#xff08;长长文&#xff09; 前言 ​ 本篇文章的目的是记录自己实现yolo v1的过程&#xff0c;在此过程中&#xff0c;参考了许多开源的代码和博客&#xff0c;赞美大佬们。 参考文献和代码 YOLO v1代码参考&#xff1a;&#xff08;读书人的事情&…