整数(short,int,long)
整数类型是程序编程中最常用到的一种数据类型,在C语言中用int来定义整数。在现在的操作系统中,int类型的数据长度一般是4个字节(4byte),即32位(4*8bit)。在计算机内存中,数据是以二进制形式存储的。
若不考虑正负单位,4字节的整数最大为232-1=4,294,967,295≈43亿,数值很大很大,但我们平时能够使用到的数值范围显然不会有这么大,这就导致空闲出来两三个字节,造成计算机内存的浪费。相反,如果仅仅是这四个字节,43亿,用来表示整个地球的人口,或者某些国家的金钱,那么就显得不够用了。
故引入了short和long两个标识来减少或增加数值范围,让整数占有更少的内存。可以在int前面加short,让整数占有更多的内存,可以在int前面加long,例如:
short int a = 10;
short int b, c = 99;
long int m = 102023;
long int n, p = 562131;
这样a,b,c只占用2个字节的内存,而m,n,p可能占用8个字节的内存。
也可以将int省略,如:
short a = 10;
short b, c = 99;
long m = 102023;
long n, p = 562131;
int 是基本的整数类型,short 和 long 是在 int 的基础上进行的扩展,short 可以节省内存,long 可以容纳更大的值。
short、int、long 是 C 语言中常见的整数类型,其中 int 称为整型,short 称为短整型,long 称为长整型。
整数的长度
一般来说,int占4个字节,C语言并没有严格规定short、int、long的长度,只做了宽泛的限制:
- short至少占用两个字节;
- int建议一个机器字长,在32位环境下机器字长为4字节,64位下为8字节;
- short的长度不能大于int,long的长度不能小于int。
且在64位不同操作系统中,也有不同长度:
不同整型的输出
输出不同整型时,使用不同的格式控制符:
%hd用来输出short int类型;
%d用来输出int类型;
%ld用来输出long int类型;
#include<stdio.h>
int main()
{
short a = 10;
int b = 100;
long c = 10000;
printf("a=%hd, b=%d, c=%ld", a,b,c);
return 0;
}