雷州手机网站建设,wordpress表单提交插件,郑州市发布,网站信息资料库建设目录 一、数据类型
1.基本类型
2.sizeof运算符
3.signed和unsigned
二、基本数据类型的取值范围
1.比特位
2.字节
3.符号位
4.补码 5.基本数据类型的取值范围 一、数据类型
1.基本类型
#xff08;1#xff09;整数类型
short intintlong intlong long int
1整数类型
short intintlong intlong long int
2浮点数类型
floatdoublelong double
3字符类型
char
4布尔类型
_Bool
5枚举类型
enum
2.sizeof运算符
sizeof 运算符用于获得数据类型或表达式的长度
如-sizeof(object); //sizeof(对象) -sizeof(type_name); //sizeof(类型) -sizeof object; //sizeof 对象
代码举例
#include stdio.hint 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);return 0;
}
代码运行结果
size of int is 4
size of i is 4
size of char is 1
size of j is 1
size of float is 4
size of k is 4 分别打印各类型所占字节
#include stdio.hint main()
{printf(int %d\n,sizeof(int));printf(short int %d\n,sizeof(short));printf(long int %d\n,sizeof(long));printf(long long int %d\n,sizeof(long long));printf(char %d\n,sizeof(char));printf(_Bool %d\n,sizeof(_Bool));printf(float %d\n,sizeof(float));printf(double %d\n,sizeof(double));printf(long double %d\n,sizeof(long double));return 0;}
运行结果设备不同结果可能也不同
int 4
short int 2
long int 4
long long int 8
char 1
_Bool 1
float 4
double 8
long double 16 3.signed和unsigned signed代表有符号的第一个位代表正负剩余的代表大小例如signed int 大小区间为-128-127。默认为signed unsigned代表无符号的所有的位都为大小没有负数例如unsigned int 大小区间为0-255。
[signed] short [int]unsigned short [int][signed] intunsigned int[signed] long [int]unsigned long [int][signed] long long [int]unsigned long long [int]
代码举例
#include stdio.hint main()
{short i;unsigned short j;i -1;j -1;printf(%d\n,i);//d为打印带符号的 printf(%u\n,j);//u为打印不带符号的 return 0;
}
运行结果
-1
65535 可见打印 j 时结果并不是我们期望出现的-1而是65535这与数据类型的取值范围有关。
二、基本数据类型的取值范围
1.比特位
CPU能读懂的最小单位是比特位bitb。每个比特位只能存放二进制数即0和1.
2.字节
内存机构最小寻址单位字节ByteB
注1Byte 8 bit
一个字节能存放的最大的数用二进制表示为
11111111
该数转化为十进制为2147483647 打印代码如下
# include stdio.h
#include math.hint main()
{unsigned int result pow(2,32) - 1;printf(result %u\n,result);return 0;
}
运行结果
4294967295 注意若不加“unsigned”则输出结果为2147483647.这是因为默认情况下int是signed类型的也就是说左边第一位是符号位所以必须加“unsigned”来使其变为一个无符号的整型变量使得32位都用来存放数值。
3.符号位
存放signed类型的存储单元中左边第一位表示符号位。如果该位为0表示该整数是一个正数如果该位为1表示该整数是一个负数。一个32位的整型变量除去左边第一位符号位剩下表示值的只有31个比特位。
4.补码
正数的补码是该数的二进制形式。负数的补码需要通过以下几步获得
1先取得该数的绝对值的二进制形式
2再将第1步的值按位取反除符号位
3最后将第2步的值加1 5.基本数据类型的取值范围
数据类型字节数取值范围char1-128~127unsigned char210~255short2-32768~32767unsigned short20~65535int4-2147483648~2147483647unsigned int40~4294967295long4-2147483648~2147483647unsigned long40~4294967295long long8-9223372036854775808~9223372036854775807unsigned long long80~18446744073709551615
数据类型字节数取值范围绝对值float41.17549*10^-38~3.40282*10^38double82.22507*10^-308~1.79769*10^308long double122.22507*10^-308~1.79769*10^308