1.进制转换:
(1)二进制、八进制、十进制、十六进制的表示形式:
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
(2)二进制、八进制、十六进制 转换为 十进制
方法:对应位 乘以 对应位的权值再求和
例如:十进制123转换为十进制:123 == 1 * 100 + 2 * 10 + 3 * 1
== 123
二进制1001 1110 转换为十进制 158
八进制17 转换为十六进制为 15
十六进制1af 转换为八进制为15 + 160 + 256= 431
(3)十进制 转换为 二进制、八进制、十六进制
方法: 十进制数除以进制数得到的余数逆序排列
(4)二进制 八进制 十六进制之间的转换:
方法:八进制1位对应二进制3位
十六进制1位对应二进制4位
2.程序如何在C语言中被运行起来?
程序(外存中)
执行(加载到内存中)
程序运行结束(回收内存空间)
3.数字在内存中的存储:
正数在计算机中存放对应的二进制数
负数在计算机中存放补码
(1)求补码的方法:正整数的补码是其二进制表示,与原码相同;求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1
4.gcc编译的流程步骤:
gcc filename.c
1.预处理
处理和#号相关代码
(1).头文件展开
#include
(2).宏定义替换
#define M 100
(3).条件编译
#if #elif #else #endif #ifndef #ifdef
gcc -E filename.c -o filename.i
如图预处理的实现过程:
2.编译
将C语言程序编译成汇编代码
gcc -S filename.c -o filename.s
如图为编译过程:
3.汇编
将汇编代码编译成二进制代码
gcc -c filename.c -o filename.o
如图为汇编过程:
4.链接
将多个二进制代码链接成为一个可执行程序
gcc filename.c -o filename
如图为链接过程:
1.数据类型分类
(1)基本数据类型:
整形数据 short int long
short (signed short)
unsigned short
int (signed int)
unsigned int
long (signed long)
unsigned long
浮点型数据 float double
字符型 char
逻辑类型(泊尔类型) bool
缺省类型(void)
(2)构造数据类型:
结构体
共用体
枚举类型
(3)基本数据类型
1.整数类型:
名称 占内存空间 值域范围 存储方式
short: 短整形 2个字节空间 -32768 - 32767 补码
unsigned short: 无符号短整型 2个字节空间 0 - 65535 对应的二进制数
int: 整形 4个字节空间 -21亿 - 21亿 补码
unsigned int: 无符号整形 4个字节空间 0 - 42亿 对应的二进制数
long: 长整型 4个字节空间 -21亿 - 21亿 补码
unsigned long: 无符号长整型 4个字节空间 0 - 42亿 对应的二进制数
练习:
编写程序测试数据类型所占字节数:
short
int
long
float
double
char
void
如图为练习代码与结果:
2.浮点数类型:
浮点型数据类型主要分为三种:
float:单精度浮点型
double:双精度浮点型
单精度和双精度
精度是指计算机表达小数近似值的一种方式
单精度32位二进制,4个字节:
双精度64位二进制,8个字节。
float:单精度浮点型,占字节数为4,用32位二进制描述,有符号是7个有效位,无符号是8个有效位。
double:双精度浮点型,占字节数为8,用64位二进制描述,有符号是15个有效位,无符号是16个有效位。
3.字符型:
char
a .. z
A .. Z
# ? ..
ASCII码表:
字符和数字的对应关系
a -> 97
名称 内存空间大小 值域范围 存储方式
unsigned char 1个字节 0 - 255 存储字符在ASCII码表中对应数字制形式
signed char 1个字节 -128 - 127
4.逻辑类型:
bool
名称 内存空间大小 值域范围 存储方式
泊尔类型 bool 1个字节 true 1
false 0
在C语言中所有的非0值均为逻辑真值
0值为逻辑假值
5.缺省类型:
void
搭配函数和指针使用
void a;
2.常量和变量:
1.常量: 在程序运行过程中值不允许发生改变的量
2.变量: 在程序运行过程中值可以发生改变的量
3.表达式:由一个或者多个运算符连接的变量和常量组成的式子
1.整形常量:
默认为int类型
100 int类型
100l long类型
100u unsigned int类型
100ul unsigned long类型
100L
100U
100UL
0123 八进制常量
0x1a 十六进制常量
0X1A
2.整形变量:
1.变量要先定义再使用
1.变量定义的形式:
数据类型 变量名;
1.变量名可以由字母、数字、下划线构成不能以数字开头
2.变量名不能与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意
驼峰法:
int TempNum;
int MaxCnt;
int MinNum;
int AvgScore;
内核法:
int temp_num;
int max_cnt;
int min_cnt;
int avg_score;
2.变量拥有存储空间,也有值域范围
3. 浮点型常量:
默认为double类型
3.1415 double类型
3.1415f float类型
3.1415e8
3.1415e-8
3.1415E8
3.1414E-8
4. 浮点型变量:
double d;
float f;
5.字符型常量:
'a' 'A'
'z' 'Z'
'?' '#'
'~' ' '
'\'' : '号
'\n' : 换行符
'\t' : 横向制表符
'\v' : 纵向制表符
'\r' : 回车符
'\b' : 退格符
'\\' : \符
'0'
'1' : 字符1
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
'\0' : 字符\0
'1' -> ASCII码表 -> 49
1 : 1
'0' : 48
0 : 0
'\0' : ASCII码值为0 用来标识字符串的结尾
'\123' : 八进制123对应的字符
'\x32' : 十六进制32对应的字符
6.字符型变量:
char ch;
7.字符串常量
8.标识常量
练习
要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”因此,“China”应译为"Glmre"请编一程序,用赋初值的方法使cl、c2、c3、C4、c5这5个变量的值分别为C’“h”i”n'a’,经过运算,使cl、c2、c3、c4、c5分别变为‘G’'l''m''r''e',并输出。
程序和运行结果如下图: