嵌入式学习第二天

发布时间:2024年01月17日

复习

学习:

C语言基础:

????1.基础:

????????1.基本数据类型、运算符、表达式

????????2.常用的输入输出函数

????????3.流程控制

????2.重点知识:

????????1.数组

????????2.函数

????????3.指针

????3.难点知识:

????????1.构造数据类型

????????2.链表

????????3.内存管理

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 -> 158

????1af -> 15 + 160 + 256

????????-> 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.基本数据类型、运算符、表达式

????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: ?长整型? ? ? ? ? ? ? ? ? ? ? ? ? ? ?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

?????????

????????2.浮点数类型:

????????????float

????????????double

????????????3.1415926

????????????5.12

????????????所有的浮点数类型均为有符号类型,没有无符号类型的概念

名称? ? ? ? ? 占内存空间大小 ?????????值域范围 ???????????????????????存储方式

float? ? ?) ????4个字节 ????????-3.4*10^38 - 1.18*10^-38 ????????????1位符号位 + 8位指数位 + 23位尾? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1.18*16^-38 - 3.4*10^38

??单精度浮点数类型(最多表示6-8位有效数)

double? ? ??8个字节 ????????-1.80*10^308 - 2.23*10^-308 ?????????1位符号位 + 11位指数位 + 52位尾数? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???2.23*10^-308 - 1.80*10^308

双精度浮点数类型(最多表示12-14位有效数字)

????????????浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中

????????????IEEE754

????????????和整数存储方式完全不同

????????3.字符型:

????????????char

????????????a .. z

????????????A .. Z

????????????# ? ..

? ? ? ? ASCII码表:

????????????字符和数字的对应关系

?名称? ? ? ? ? ? ? ? ? ? 内存空间大小 ?????????值域范围 ??????存储方式

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 ???????八进制常量? ? ?(0代表八进制)

????????0x1a ???????十六进制常量?(0x代表十六进制)

????????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;

文章来源:https://blog.csdn.net/m0_75240018/article/details/135632061
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。