1.1整型常量/变量
1.2实型(浮点类型)常量
1.3字符型常量
1.4转义字符
1.5字符常量
—————————————————————————————————
1.1整型常量/变量
- 1.1-1整型常量的表示方法:整型常量就是整数,例如1、2、3、4、5、0…
- 在C语言中通常用三种表示方法:
a.十进制整数:123、-456.2 ; 【正常表示数值】
b.八进制整数:以0开头的,0-7之间范围的数就是八进制数。
c.十六进制整数:以0x或者0X开头的数是十六进制数。 - 1.1-2整型变量
a.整型数据在内存中的存放形式
数据在内存中是以二进制形式存放的。如果定义了一个整型变量:
int i; /*定义为整型变量*/
i = 10; /*给i赋值整数10*/
重点:数值实际上是以补码(complement)表示的。方式是二进制表示
例子:正负数补码的表示
eg:求-10的补码
i=10, i : 0000000000001010 【数据在内存中的存放】
1、取10的绝对值10;
2、10的绝对值的二进制形式为1010;
3、对1010取反得1111111111110101【取反的意思:0为1,1为0】【一个整数占16位】
4、再加1得1111111111110110(进1尾0)
【存放整数的存储单元中,最左边的一位表示符号,该位为0,表示数值为正;该位为1,表示数值为负】
- 1.1-3整形变量的分类
整型变量的基本类型符为int。【系统默认为int类型】
在int之前可以根据需要分别加上修饰符(modifier):short(短型)或者kong(长型)。因此有三类整型变量:
1、基本整型,以int表示
2、短整型,以short int表示,或以short表示
3、长整型,以long int表示,或以long表示
**【生活实践】**在实际应用中,变量的值常常是正的(如学号,库存量,年龄,存款额等。)
-
int 、short 、long 加上修饰符unsigned,指定为“无符号数”
-
int 、short 、long 加上修饰符signed,指定为“有符号数”
-
既不指定为signed,也不指定为unsigned,则隐含为有符号数。
即为: -
有符号基本整型[signed] int;
-
无符号基本整型unsigned int;
-
有符号短整型[signed] short [int];
-
无符号短整型unsigned short [int];
-
有符号长整型[signed] long [int];
-
无符号长整型unsigned long [int];
如果既不指定unsigned/signed,则存储单元中最高位代表符号(0为正,1为负)
———————————————————————————————————
如果指定unsigned,为无符号型,存储单元中全部二进位(bit)用作存放数本身,而不包括符号。
【无符号型变量只能存放不带符号的整数,如123、4568等,而不能存放负数,如-123、-4】
- 一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。
(无符号整型变量=负数的范围【转正】+正数的范围=2倍正数范围)
例如,在程序中定义a和b两个变量:
int a;
unsigned int b;
变量a的数值范围为-32768~32767,变量b的数值范围为0-65535
- 1.1-4整数的有关数据
-
1.1-5整数在存储单元中的存储情况
-
1.1-6整型变量的定义
C语言所有用到的变量都必须在程序中定义,即“强制类型定义”
例如:
int a,b; /*指定变量为整型*/
unsigned short c,d; /*指定变量为无符号整型*/
long e,f; /*指定变量为长整型*/
- 整型变量的定义与使用
#include<stdio.h>
void main()
{
int a,b,c,d;
unsigned u;
a=12;
b=-24;
u=10;
c=a+u;
d=b+u;
printf("a+u=%d,b+u=%d\n",c,d);
}
运行结果为 a+u=22,b+u=-14
- 1.1-7整型数据的溢出
一个int类型的变量最大允许值为32767,如果再加1,会出现什么情况呢?
//例如
#include<stdio.h>
void main()
{
int a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
1、a变量的最高位为0,后15位全为1。加1之后,变成第一位为1,后面15位全为0。
2、它是-32768的补码形式,所以输出变量b的值为-32768。
1.1-8整型常量的类型
- 一个整数,其值在-32768~32767范围内,认为它为int型,可以赋值给int型或者long int型变量。
- 一个整数,其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是长整型,可以赋值给long int型变量。
- 一个整常量后面加一个字母“u”或者“U”,认为是unsigned int型。
- 一个整常量后面加一个字母“l”或者“L”,认为是long int型常量。