基本类型
整数类型:
-short int
-int
-long int
-long long int
浮点数类型:
-float
-double
-long double
字符类型:
-char
布尔类型:
-_Bool
枚举类型:
-enum
sizeof运算符
sizeof运算符用于获得数据类型或表达式的长度
-sizeof(object);//sizeof(对象);
-sizeof(type_name);//sizeof(类型);
-sizeof object;//sizeof 对象;
#include<stdio.h>
#include<stdlib.h>
#include <stdbool.h>
int main(){
int i;
char j;
float k;
i=123;
j='c';
k=3.14;
printf("size of int is %d\n",sizeof(int));
printf("size of i is %d\n",sizeof(i));
printf("size of char is %d\n",sizeof(char));
printf("size of j is %d\n",sizeof(j));
printf("size of float is %d\n",sizeof(float));
printf("size of k is %d\n",sizeof(k));
//接下来让我们看看基本数据类型所占的字符的大小
printf("基本数据类型所占字符大小:\n");
printf("size of int is %d\n",sizeof(int));
printf("size of short is %d\n",sizeof(short));
printf("size of long is %d\n",sizeof(long));
printf("size of long long is %d\n",sizeof(long long));
printf("size of char is %d\n",sizeof(char));
printf("size of _Bool is %d\n",sizeof(_Bool));//由于C编译不支持布尔型,导入头文件#include <stdbool.h>即可
printf("size of float is %d\n",sizeof(float));
printf("size of double is %d\n",sizeof(double));
printf("size of long double is %d\n",sizeof(long double));
system("pause");
return 0;
}
【该例遇到了两个问题:
1.输入 _Bool 时显示未定义标识符 Bool 。解决办法:导入头文件#include <stdbool.h>
2.运行结果中文显示乱码。 解决办法:VsCode编写C语言时默认代码格式位utf-8,右下角将代码格式通过编码保存味gbk即可。
】
取值范围
比特位:CPU能读懂的最小单位 -bit b
字节:内存机构的最小寻址单位 -Byte B
1Byte==8bit
1个字节可以表示多大的数:11111111=255
进制
二进制——>十进制:2的n次方减一(n为1的个数)
符号位
signed和unsigned
signed表示该符号位可以存放带符号的数据。
unsigned表示该符号位存放不带符号的数据。
默认情况下为signed
-存放signed类型的存储单元中,左边第一位表示符号位。如果该位为0,表示该整数是一个整数,如果该位为1,表示该整数是一个负数。
-一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有31个比特位。
-事实上计算机是用补码的形式来存放整数的值。
补码
1正数的补码是该数的二进制形式
2.负数的补码需要通过以下几步获得:
-先取得该数得绝对值的二进制形式。
-再将第一步所得的值按位取反。
-最后将第二步的值加1.
最大值和最小值
虽然补码看起来很麻烦,但是既然使用它就说明他还是有好处的。