数据类型
数据类型
1.基本类型
1)整数类型 int short int long int
2)浮点数类型 float double
3) 字符类型 char
4)布尔类型 _Bool
5)枚举类型
2.指针类型
3.构造类型
1)数组类型 2)结构类型 3)联合类型
sizeof运算符
sizeof运算符用于获得数据类型或表达式的长度
——sizeof(object); //sizeof(对象);
——sizeof(type_name); //sizeof(类型);
——sizeof object; //sizeof 对象;
signed 和 unsigned
是类型限定符,用于限定char类型或者任何整型变量的取值范围。
signed表示该变量是带符号位的(只能存放正数和零)
而unsigned表示该变量是不带符号位的(可以存放负数)
[signed] short [int]
unsigned short [int]
[signed] int
unsigned int
[signed] long [int]
unsigned long [int]
取值范围
比特位:cpu能读懂的最小单位 ——比特位,bit,b
字节:内存机构的最小寻址单位 ——字节,byte,B
1Byte == 8bit
1个字节可以表示多大的数 二进制11111111 十进制255 十六进制FF
例题
#include <stido.h> #include <math.h>
int main() {
unsigned int result = pow(2,32) - 1;
printf("result = %u\n",result);//无符号类型要用%u
return 0;
int result = pow(2,31) - 1;
printf("result = %u\n",result);//无符号类型要用%u
return 0;
}
符号位
存放signed类型的存储单元中,左边第一位表示符号位。如果该位为0,表示该整数是一个正数;如果该位为1,表示该整数是一个负数。
一位32位的整形变量,除去左边第一位符号位,剩下表示值的只有31个比特位。
计算机是用补码的形式来存放整数的值。