c语言数据类型取值范围

一、CPU位数和数据类型

在嵌入式开发中,不同数据类型的位数和取值范围由CPU的位数决定,我们可以通过sizeof关键词计算出每一种数据类型的范围。

嵌入式开发中熟练掌握各数据类型的取值范围是很有必要的,尤其在长期运行的设备中。比如我们定义了一个int类型的数据,它的正向最大取值为2147483647,换算成天数:2147483647/1000/3600/24,大约是24.85天,如果你定义了一个每隔1ms加一的变量,那么这个值最多只能用24天,超过24天之后这个计数值就会出现基数问题,从而导bug的产生。

二、整数类型的取值范围

不同数据类型在32位CPU和64位CPU上的字节数和取值范围如下:

数据类型32位CPU64位CPU32位CPU下取值范围
char11-128~127 (-27~27-1)
unsigned char110~255 (0~28-1)
short int22-32767~32768 (-215~215-1)
unsigned short int220~65535 (0~216-1)
int44-2147483648~2147483647 (-231~231-1)
unsigned int440~4294967295 (0~232-1)
long48-2147483648~2147483647 (-231~231-1)
long long88(-263~263-1)

三、64位ubuntu下计算出的各数据类型占用的字节数

int main()
{
    printf("int:%d\r\nunsigned int:%d\r\nshort int:%d\r\nlong:%d\r\nlong long:%d\r\nchar:%d\r\nunsigned char:%d\r\nfloat:%d\r\ndouble:%d\r\nbool:%d\r\nint*:%d\r\n",
	       sizeof(int),sizeof(unsigned int),sizeof(short int),sizeof(long),sizeof(long long),sizeof(char),sizeof(unsigned char),sizeof(float),sizeof(double),sizeof(bool),sizeof(int*));   
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值