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 char1-2^7(-128) ~ 2^7-1(127)
short int 或 short2-2^15(-32 768) ~ 2^15-1(32 767)
int4-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)
long int 或 long4-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)
long long int 或 long long8-2^63(-9.2233720368548e+18) ~ 2^63-1(9.2233720368548e+18)

无符号整数类型

类型名称字节数取值范围
unsigned char10 ~ 2^8-1(255)
unsigned short int 或 unsigned short20 ~ 2^16-1(65 535)
unsigned int40 ~ 2^32-1(4 294 967 295)
unsigned long int 或 unsigned long40 ~ 2^32-1(4 294 967 295)
unsigned long long int 或 unsigned long long80 ~ 2^64-1(1.844674407371e+19)

浮点类型

类型名称字节数取值范围
float4-/+3.4e38(精确到6位小数)
double8-/+1.7e308(精确到15位小数)
long double12-/+1.19e4932(精确到18位小数)

极限值符号

表示有符号整数类型的极限值符号

类型名称下限上限
charCHAR_MINCHAR_MAX
shortSHRT_MINSHRT_MAX
intINT_MININT_MAX
longLONG_MINLONG_MAX
long longLLONG_MINLLONG_MAX

表示无符号整数类型的极限值符号

类型名称下限上限
unsigned char0UCHAR_MAX
unsigned short0USHRT_MAX
unsigned int0UINT_MAX
unsigned long0ULONG_MAX
unsigned long long0ULLONG_MAX

表示浮点类型的极限值符号

类型名称下限上限
floatFLT_MINFLT_MAX
doubleDBL_MINDBL_MAX
long doubleLDBL_MINLDBL_MAX

好了,今天就分享到这里,如果以后遇见新的用法楼主还会更新的,欢迎各位小伙伴来搬砖哦!
转载时请注明出处!转载时请注明出处!转载时请注明出处!……

  • 120
    点赞
  • 517
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
C语言中的变量类型包括整型、浮点型、字符型和指针型等。 整型变量用于存储整数,包括有符号和无符号类型。有符号类型可表示正、负整数,无符号类型只能表示非负整数。取值范围主要取决于所使用的编译器和机器平台,通常有char(1字节,范围-128到127或0到255)、short(2字节,范围-32768到32767或0到65535)、int(4字节,范围-2147483648到2147483647或0到4294967295)、long(4或8字节,范围因平台而异)、long long(8字节,范围因平台而异)等。 浮点型变量用于存储实数,包括单精度和双精度类型。单精度浮点数通常为4字节,双精度浮点数通常为8字节。取值范围也因平台不同而有所差异,但一般单精度范围约为1.2e-38到3.4e38,双精度范围约为2.3e-308到1.7e308。 字符型变量用于存储单个字符,占用1字节。字符类型可表示ASCII字符,取值范围为0到127,或者使用wchar_t类型表示更广泛的字符集。 指针型变量用于存储内存地址,用于访问和操作其他变量。指针的大小根据所在平台而定,一般为4或8字节。指针的取值范围可能占用整个地址空间,但具体大小取决于计算机的架构和操作系统。 总结而言,C语言中变量的类型和取值范围因平台和编译器而异,但通常整型、浮点型、字符型和指针型是基本的类型,其取值范围不同数据类型和计算机架构决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值