C语言中各个数据类型的取值范围
因为CPU的差异,各系统中的数据类型所占的字节数(bytes)不同,二进制位数(bit)也不同。那么怎样才能知道自己系统的数据类型的字节数,位数呢?
授之以鱼不如授之以渔,大家可以自己从电脑里获取这些信息。
首先我们知道1个字节等于8个位,可以用sizeof()关键字设计以下程序解决:
/*获取当前操作系统的字节数(bytes)和位数(bit)*/
#include<stdio.h>
int main(void)
{
printf("int:bytes %d;bit %d", sizeof(int), sizeof(int) * 8);
return 0;
}
由此可得知楼主系统的整数(int)所占字节数是4,位数为32
而取值范围则可以用极限值符号(极限值符号定义在 limits.h 头文件中,以下会详细介绍)来获得
下面以char类型为例:
/*获取char数据类型的取值范围*/
#include<stdio.h>
#include<limits.h>
int main(void)
{
printf("char:MIN %d;MAX %d", CHAR_MIN, CHAR_MAX);
return 0;
}
有符号整数类型
类型名称 字节数 取值范围
signed char 1 -2^7 ~ 2^7-1
short int 或 short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long int 或 long 4 -2^31 ~ 2^31-1
long long int 或 long long 8 -2^63 ~ 2^63-1
无符号整数类型
类型名称 字节数 取值范围
unsigned char 1 0 ~ 2^8
unsigned short int 或 unsigned short 2 0 ~ 2^16
unsigned int 4 0 ~ 2^32
unsigned long int 或 unsigned long 4 0 ~ 2^32
unsigned long long int 或 unsigned long long 8 0 ~ 2^64
浮点类型
类型名称 字节数 取值范围
float 4 -/+3.4e38(精确到6位小数)
double 8 -/+1.7e308(精确到15位小数)
long double 12 -/+1.19e4932(精确到18位小数)
极限值符号
表示有符号整数类型的极限值符号
类型名称 下限 上限
char CHAR_MIN CHAR_MAX
short SHRT_MIN SHRT_MAX
int INT_MIN INT_MAX
long LONG_MIN LONG_MAX
long long LLONG_MIN LLONG_MAX
表示无符号整数类型的极限值符号
类型名称 下限 上限
unsigned char 0 UCHAR_MAX
unsigned short 0 USHRT_MAX
unsigned int 0 UINT_MAX
unsigned long 0 ULONG_MAX
unsigned long long 0 ULLONG_MAX
表示浮点类型的极限值符号
类型名称 下限 上限
float FLT_MIN FLT_MAX
double DBL_MIN DBL_MAX
long double LDBL_MIN LDBL_MAX
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix