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
二进制、八进制、十六进制 ---> 十进制
对应位 * 对应位的权值再求和
十进制: 123 == 1 * 100 + 2 * 10 + 3 * 1 == 123
二进制: 1001 1110 ---> 十进制:2^7 + 2^4 + 2^3 + 2^2 + 2^1 = 158
八进制:17 ---> 十进制:7 * 8^0 + 1 * 8^1 = 15
十六进制:1af ---> 十进制:15 * 16^0+ 10 * 16^1 + 1*16^2 = 431
十进制 -> 二进制、八进制、十六进制
十进制数除以进制数得到的余数逆序排列
二进制 八进制 十六进制:
八进制1位对应二进制3位
十六进制1位对应二进制4位
2.程序如何在C语言中被运行起来?
程序(外存中)
执行(加载到内存中)
程序运行结束(回收内存空间)
3.数字在内存中的存储:
正数在计算机中存放对应的二进制数
负数在计算机中存放补码
1.原码
2.反码
3.补码
4.内存数据
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.基本数据类型:
整形数据 short int long
short (signed short)
unsigned short
int (signed int)
unsigned int
long (signed long)
unsigned long
浮点型数据 float double
字符型 char
逻辑类型(泊尔类型) bool
缺省类型(void)
2.构造数据类型:
结构体
共用体
枚举类型
名称 占内存空间 值域范围 存储方式
short: 短整形 2个字节空间 -32768 - 32767 补码
unsigned short: 无符号短整型 2个字节空间 0 - 65535 对应的二进制数
int: 整形 4个字节空间 -21亿 - 21亿 补码
unsigned int: 无符号整形 4个字节空间 0 - 42亿 对应的二进制数
long: 长整型 8个字节空间 -2^63 - 2^63 -1 补码
unsigned long: 无符号长整型 8个字节空间 0 - 2^64 对应的二进制数
练习:
编写程序测试数据类型所占字节数:
short 2
int 4
long 8
float 4
double 8
char 1
void 1
float :单精度浮点数(最多表示6-8位有效数字)
double :双精度浮点数(最多表示12-14位有效数字)
所有的浮点数类型均为有符号类型,没有无符号类型的概念
名称 占内存空间大小 值域范围 存储方式
float 4个字节 -3.4*10^38 - 1.18*10^-3 1位符号位 + 8位指数位 + 23位尾数位
1.18*16^-38 - 3.4*10^38
double 8个字节 -1.80*10^308 - 2.23*10^-308 1位符号位 + 11位指数位 + 52位尾数位
2.23*10^-308 - 1.80*10^308
浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中(和整数存储方式完全不同)
char
ASCII码表:字符和数字的对应关系
名称 内存空间大小 值域范围 存储方式
unsigned char 1个字节 0 - 255 存储字符在ASCII码表中对应数字的二进制形式
signed char 1个字节 -128 - 127
bool
名称 内存空间大小 值域范围 存储方式
泊尔类型 bool 1个字节 true 1
false 0
在C语言中所有的非0值均为逻辑真值
0值为逻辑假值
void
搭配函数和指针使用
1.常量: 在程序运行过程中值不允许发生改变的量
2.变量: 在程序运行过程中值可以发生改变的量
3.表达式:由一个或者多个运算符连接的变量和常量组成的式子
默认为int类型
100 int类型
100l、100L long类型
100u 、100U unsigned int类型
100ul、100UL unsigned long类型
0123 八进制常量
0x1a 十六进制常量
0X1A 十六进制常量
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.变量拥有存储空间,也有值域范围
默认为double类型
3.1415 double类型
3.1415f float类型
3.1415e8
3.1415e-8
3.1415E8
3.1414E-8
double d;
float f;
'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对应的字符
char ch;