- 数据类型
- 1 有符号
例子:
有符号字符型signed char:最高位(最左位)为符号位
取值范围:10000000(-128)-- 01111111(+127)
详解:
//有符号数就是最高位为符号位,0代表正数,1代表负数
//C语言中变量默认为有符号的类型, unsigned 关键字声明变量为无符号类型。
//有符号最左位1代表负数(2^7=128)—最左位0代表正数(2^0+……2^6=127)
//long有可能是4个字节或8个字节这取决于编译器。
名称 |
数据类型 |
字节/比特位 |
取值范围 |
char |
字符数据类型 |
1 字节=8 比特 |
-2^7~2^7-1(-128~127) |
short |
短整型 |
2 字节=16 比特 |
-2^15~2^15-1(- 32,768 ~32,767) |
int |
整型 |
4 字节=32 比特 |
-2^31~2^31-1 |
long |
长整型 |
4 字节=32 比特 |
-2^31~2^31-1 |
long long |
更长的整型 |
8 字节=64 比特 |
-2^63~2^63-1 |
浮点类型
浮点类型类型 |
比特位 |
有效数字 |
取值范围 |
float(单精度浮点数) |
32 |
6~7 |
-3.4*10^38~+3.4*10^38 |
double(双精度浮点数) |
64 |
15~16 |
-1.7*10^-308~1.7*10^308 |
long double(长双精度浮点数) |
128 |
18~19 |
-1.2*10^-4932~1.2*10^4932 |
- 2 无符号
无符号字符型unsigned char:没有符号位都是数值位
取值范围:00000000(0)—11111111(255)
//无符号全0(0)—全1(2^0+……2^7=255)
名称 |
数据类型 |
字节/比特位 |
取值范围 |
unsigned char |
字符数据类型 |
1 字节=8 比特 |
0~2^8-1(0~255) |
unsigned short |
短整型 |
2 字节=16 比特 |
0~2^16-1(0~65535) |
unsigned int |
整型 |
4 字节=32 比特 |
0~2^32-1(0 ~ +4,294,967,295) |
unsigned long |
长整型 |
4 字节=32 比特 |
0~2^32-1 |
unsigned long long |
更长的整型 |
8 字节=64 比特 |
0~2^64-1 |
//那么为什么没有无符号浮点数呢?
因为浮点数是按照整数部分,小数部分,指数部分存放的。运算也是分开来运算的。所以unsigned无法作用于float,所以定义无符号的浮点型会出错。
1.3 打印形式
%d |
//打印整型(十进制) |
%C |
//打印字符 |
%f |
//打印单精度浮点数-小数 |
%p |
//以地址的形式打印 |
%x |
//打印十六进制 |
%lf |
打印双精度浮点数-小数 |
1.4 数据类型讲解
char-字符类型
#include<stdio.h>
int main()
{
char ch = 'A';//向计算机申请存放一个字符A,存放到ch这个变量中
printf("%C\n", ch);//以字符的形式打印数据
return 0;//返回一个整型
}
结果:A
因为%C打印出来的是字符
int-整型类型
#include<stdio.h>
int main()
{
int age = 20;//整型变量age,20存放到age这个变量中
printf("小明的年龄=%d岁\n",age);//打印整型-十进制数据
return 0;
}
数据类型所对应的字节
#include<stdio.h>
int main()
{ //字节//可存放比特位//注意事项
printf("%d\n", sizeof(char)); //1个//8位//只能用单引号' '来包围,
printf("%d\n", sizeof(short));//2个//16位//
printf("%d\n", sizeof(int)); //4个//32位//
printf("%d\n", sizeof(long)); //4个//32位//有可能是4或者8取决编译器的数据类型
printf("%d\n", sizeof(long long));//8个//64位
printf("%d\n", sizeof(float)); //4个//32位
printf("%d\n", sizeof(double));//8个//64位
return 0;
}
//计算机是硬件—通电—正电为1—负电为0
//1 bit可存放0或者1,
//一个字节可存放8个比特位的大小
//存在这么多类型,是为了更加丰富的表达生活中的各种值