数据类型:
1.解释:数据有各种类别:数字、文字等,同样类别的数据也有大小之分,1个Byte不能满足这多样的需求。对需求相同的数据分为一类,分配相同的字节空间用于存储。所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。
2.内容:数据类型包括基本类型,空类型void,指针类型*,以及构造类型,其中基本类型又包括整形类型(基本整型int,短整型short int,长整型iong int。),字符类型(字符型char),浮点类型(单精度浮点型float和double),构造类型又包括数组类型[],结构体类型。共用体类型,枚举类型。
3.概念:整数数据类型,用来表示数学中的整数,包括正整数,负整数,零,对于整数类型,根据其取值范围不同,还可以分为整形,无符号整形,短整型,无符号短整型,长整型和无符号长整型。这六种类型是我们整数类型中常用的六种,其类型定义符分别为:[signed] int,unsigned,[signed] short [int],unsigned short [int],[signed] long [int]m,unsigned iong [int] ,其中方括号标注的类型定义符是可以省略不写的。由于他们所表示的数的大小范围不同,所以他们所占的字节数也是不同的。我们可以看到其中整型和无符号整型占4个字节。型和无符号短整型占2个字节,长整型和无符号长整型占4个字节,很显然所占字节数越大的类型,对应的取值范围就会越大。
4.说明:C标准没有具体规定各种类型数据所占用存储单元的长度,只要求sizeof(short)ssizeof(int)ssizeof(long),具体由各编译系统自行决定的。sizeof是测量类型或变量长度的运算符。
5。例子:以无符号短整型为例,由于每一位二进制可以取零或者是一,所以最小的无符号短整型,它就是由16个零来组成的。而最大的短整型它就是由16个一构成无符号短整型,将全部的二进制位用来表示数值。简而言之,无符号类型是不能表示负数的,并且在c语言中无符号数是以源码的形式进行表示的,因此它的取值范围就是0~2的16次方-1。 也就是说从0~6535的一个表示范围。而有符号的短整型。它是使用最左边的一位来表示正负号,由最左端的一位二进制来表示正和负这两个符号,用零来表示正号,用一来表示负号。剩下的15位来表示数值的大小,同时在c语言中有符号的数,是以补码的形式来进行表示的。
6.总结:对于无符号短整型和有符号短整型它们的取值范分别从0~2的16次方-1和负的2的15次方到正的2的15次方-1。按照这样的一个规则,我们只要知道某种整数类型所占的二进制的位数就可以很容易的算出其取值范围。
7.在c语言中,整数可以用三种不同的进制来表示,分别为16进制,十进制和八进制。十进制是有0~9这10个数字构成,、而8进制是由0~7八个数字构成,而十六进制是由0~9,A到F这16个数字构成。
8.举例说明:只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加。(2)对无符号整型数据用“%u”格式输出。%u表示用无符号十进制数的格式输出。例如:
unsigned short price=50; //定义price为无符号短整型变量
printf("%u\n' ',price); //指定用无符号十进制数的格式输出
在将一个变量定义为无符号整型后,不应向它赋予一个负值,否则会得到错误的结果。例如:、
unsigned short price= -1; //不能把一个负整数存储在无符号变量中
printf("%d\n" ,price);
有符号类:整型为%d,短整型为%hd,长整型为%ld long long为%lld。
无符号类:整型为%u,短整型为%hu,长整型为%lu ,unsigned long long为%llu