2.3 整型数据
【考点1】整型常量
在C语言程序中,整型常量可以用十进制、八进制和十六进制等形式表示。
(1)十进制基本常量用一串连续的数字表示,如32767、-32768、0等;
(2)八进制也用一串连续的数字表示,其开头必须是数字“0”,如016等;
(3)十六进制数用数字0和字母X开头,其字母不区分大小写,如0Xf等。
在C程序中,只有十进制可以是负数,八进制和十六进制没有正负的概念。整型常量有短整型(short int)、基本整型(int)、长整型(long int)和无符号型(unsigned)等不同类型。
【真题演练】
以下选项中,合法的C语言常量是( )。[2015年3月真题]
A.1.234
B.'C++'
C."\2.0
D.2Kb
【答案】A
【解析】C语言中的常量:①整型常量,用不带小数点的数字表示;②实型常量,用带小数点的数字表示;③字符型常量,用带有单引号的一个字符表示;④字符串常量,用一对双引号括起来的一串字符。1.234为实型常量,A项正确;'C++'不合法,若改成"C++"则为字符串常量,B项错误;"\2.0不合法,不是任何类型常量,C项错误;2Kb不合法,若加上双引号"2Kb"为字符串常量,D项错误。答案选择A选项。
【考点2】整型变量
①整型变量可以分为基本型、短整型、长整型和无符号型四种,默认为有符号型。基本型的整型变量用类型名关键字int进行定义,可同时定义多个变量,变量之间用逗号隔开,一个定义语句必须以一个“;”号结束。
②不同的编译系统为int变量开辟的内存单元大小不同。可以在定义变量的同时给变量赋初值,即对变量初始化。
【考点3】整型数据的分类
下表给出VC++2010整型数据的分类,表中方括号内的单词可以省略,各单词排列顺序无关紧要。
表2-1 VC++2010中定义的整型数所占字节和数值范围
【考点4】整数在内存中的存储形式
如果一台计算机以两字节来存放一条机器指令,则称计算机字长为16位,以四字节存放一条机器指令,称计算机字长为32位,最高位置0表示正整数,置1表示负整数。整数在内存中的存储形式有以下几种:
(1)正整数
正整数是以原码形式存放,如果一字节能够正确表示一个整数时,就用一个字节表示。
(2)负整数
①负整数在内存中是以“补码”形式存放的。取某个二进制数的补码步骤如下:
a.求原码的反码:
把原码除符号位之外的二进制码按位取反,即0变1,1变0,得到该原码的反码;
b.把所得的反码加1,即得到原码的补码。
②把内存中以补码形式存放的二进制码转化成十进制的负整数步骤如下:
a.除符号位之外,各位取反;
b.将所得二进制数转换成十进制数;
c.对所求得的数再减1。
(3)无符号整数
无符号整数的最高位不再用来表示符号,而是全部用来表示数值,无符号整数不可能是负数。