- 数据类型
- 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个比特位的大小
//存在这么多类型,是为了更加丰富的表达生活中的各种值