C语言
提供
两大系列
的
多种
数据类型。
两大数据
类型是
整数
类型和
浮点数
类型。
1、位、字节和字
位
、字节
和字
是描述计算机数据单元
或存储单元
的术语
。
序号 | 类型 | 描述 |
---|---|---|
1 | 位 (bit ) | 最小的存储单元,可以储存0 或1 |
2 | 字节 (byte ) | 常用 的计算机存储单位 。对于几乎所有的机器, 1字节 均为8位 |
3 | 字 (word ) | 设计计算机时给定的自然存储单位 |
个人计算机字长
增至32位
,64位
。计算机的字长
越大,其数据转移
越快,允许的内存访问
也更多。
2、整数类型
C语言
用int
关键字来表示基本
的整数类型
。int
类型被认为是计算机处理整数类型
时最高效
的类型。
int
类型是有符号整型
,即int
类型的值
必须是整数
,可以是正整数
、负整数
或零
。
C语言
只规定了short
占用的存储空间
不能多于int
,long
占用的存储空间
不能少于int
。
这样规定是为了适应不同的机器
。目前的个人计算机
一般是32位
,因此用32位
储存一个int值
。
序号 | 类型 | 存储大小 | 值范围 |
---|---|---|---|
1 | char | 1 字节 | -128 到127 |
2 | unsigned char | 1 字节 | 0 到255 |
3 | int | (1)2 字节(2) 4 字节 | (1)-32,728 到32,767 (2) -2,147,483,648 到2,147,483,647 |
4 | unsigned int | (1)2 字节(2) 4 字节 | (1)0 到65,535 (2) 0 到4,294,967,295 |
5 | short | 2 字节 | -32,728 到32,767 |
6 | unsigned int | 2 字节 | 0 到65,535 |
7 | long | 4 字节 | -2,147,483,648 到2,147,483,647 |
8 | unsigned long | 4 字节 | 0 到4,294,967,295 |
9 | long long | 8 字节 | - |
10 | unsigned long long | 8 字节 | - |
x86运行以下代码的结果:
#include <stdio.h>
#include <string.h>
void main()
{
printf("sizeof(int) = %d\n", sizeof(int)); //4
printf("sizeof(float) = %d\n", sizeof(float)); //4
printf("sizeof(double) = %d\n", sizeof(double));//8
}
3、浮点类型
C语言
的浮点类型有float
、double
和long double
类型。
C标准
规定,float
类型必须至少能表示6位有效数字
,且取值范围至少是10^-37
~ 10^+37
。
(1)float
类型的格式,1
位符号,8
位指数,23
位小数:
(2) double
类型的格式,1
位符号,11
位指数,52
位小数:
序号 | 类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|---|
1 | float | 4 字节 | 1.2E-38 到3.4E+38 | 6 位小数 |
2 | double | 8 字节 | 2.3E-308 到1.7E+308 | 15 位小数 |
3 | long double | 16 字节 | 3.4E-4932 到1.1E+4932 | 19 位小数 |