一、整型数据类型

1.整型数据类型名称及关键词

类型名称

关键词

注释

字符型

char

用于表示很小的整数

短整型

short

用于表示较小的整数

整型

int

生活中一般的整数都可以表示

长整型

long

用于表示较大的整数

加长整型

long long

用于表示非常大的整数

2.为什么要定义不同的整型类型?

      因为不同的数据类型所占用的内存大小是不同的,他们可表示的数据范围也是不同的。那么char,short,int,long,long long,分别占用几个字节?具体的数值范围又是多少?C语言并未规定数据类型的大小范围,具体实现交由编译器和平台来实现。那么我们怎么知道Visual studio 2022中各种整型类型能够表示的范围呢?我们可以用sizeof测量。

3.如何测量数据类型大小

  • sizeof可以测量数据类型
  • sizeof可以测量变量
  • sizeof可以测量常量

//测量整型数据类型占用的字节
#include<stdio.h>
int main()
{
printf("char=%d\n", sizeof(char));
printf("short=%d\n", sizeof(short));
printf("int=%d\n", sizeof(int));
printf("long=%d\n", sizeof(long));
printf("long long=%d\n", sizeof(long long));
return 0;
}

运行结果:

【C语言_2】整型和浮点型数据类型_整型数据类型

4.整型数值范围结论

类型

字节

二进制位数

取值范围

char

1

1x8=8位

-128~127

short

2

2x8=16位

-32768~32767

int

4

4x8=32位

-2147483648~2147483647

long

4

4x8=32位

-2147483648~2147483647

long long

8

8x8=64位

-9223372036854775808~

9223372036854775807

5.不想最高位当符号位怎么做?

类型

字节

二进制位数

取值范围

unsigned char

1

8

0~255

unsigned short

2

16

0~65535

unsigned int 

4

32

0~4294967295

unsigned long

4

32

0~4294967295

unsigned long long

8

64

0~18446744073709551615

二、浮点型数据类型

1.int类型能装下小数吗?

//错误示范
#include<stdio.h>
int main()
{
int a=1.345678;
int b=0.123456;
int c=5.234567;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
return 0;
}

运行结果:

【C语言_2】整型和浮点型数据类型_整型数据类型_02

所以整型数据类型是不能表示小数的!

引入新的数据类型:浮点型数据类型

2.单精度浮点类型float


#include<stdio.h>
int main()
{
float a=1.345678;
float b=0.00001;
float c=365.12345;
printf("a=%f\n",a);
printf("b=%f\n",b);
printf("c=%f\n",c);
return 0;
}
//%d占位符用于整型
//%f占位符用于浮点型

运行结果:

【C语言_2】整型和浮点型数据类型_整型数据类型_03

结果显示c=365.12344

  • 所以浮点型并不能表示无限精确,会有误差。
  • float至少能表示6位有效数字

3.双精度浮点类型double

#include<stdio.h>
int main()
{
double a=1.345678;
double b=0.00001;
double c=365.12345;
printf("a=%f\n",a);
printf("b=%f\n",b);
printf("c=%f\n",c);
return 0;
}

运行结果:

【C语言_2】整型和浮点型数据类型_float_04

4浮点类型所占字节

//测量浮点型数据类型所占用的字节
#include<stdio.h>
int main()
{
printf("float=%d\n",sizeof(float));
printf("double=%d\n",sizeof(double));
return 0;
}

运行结果:

【C语言_2】整型和浮点型数据类型_浮点型数据类型_05