学习C语言为嵌入式打基础

发布时间:2024年01月18日

IEEE给出的嵌入式系统的定义:嵌 入 式 系 统 是 以 应 用为 中 心 、 以 计 算 机 技 术 为 基 础 、软 件 硬 件 可 裁 剪 、 适 应 应 用 系系统对功 能 、 可 靠 性 、 成 本 、 体 积 、 功 耗 严 格 要 求 的 专 用 计 算 机 系 统 。

嵌 入 式 系 统 是 将 先 进 的 计 算 机 技 术 、 半 导 体 技 术 和 电 子 技 术 与 各 个 行 业 的 具 体 应 用 相 结 合 后 的 产 物 。

?包 含 有 计 算 机 , 但 又 不 是 用 计 算 机 的 计 算 机 应 用 系 统 。

一、vim进阶:
命令模式下
复制:
? ?Myy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //复制光标所在的这一行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//M数字 表示复制 从光标所在行开始 M行内容 ? ?
?

?Np? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//粘贴?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//N数字 可以 粘贴 N份?
?? ??? ??
shift+v? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//行选中 配合方向键 选中多行?

选中的情况下
?按一下 y 复制?
?按p粘贴?

ctrl+v? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //块选中?

删除:
? dd?

剪切: ?
? dd + p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //剪切 ?

二、数据类型

基本数据类型:整型 、浮点型 、字符型。

1、整型:常量形式、变量形式

(1)常量形式:

123? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//十进制?
0x123? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//十六进制?
0123? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //八进制?

十进制:
? 0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9
?10 ?11 ?12 ?13 ? .... ? ? ? ? ? ? ? 19
?20 ?21 ?... ? ? ? ? ? ? ? ? ? ? ? ? 29?

十六进制: ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 10 ?11 ?12 ?13 ?14 ?15
?0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? a ? b ? c ? d ? e ? f
10 ?11 ?12 ...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1a?1b ? ?...? ? ? ? 1f
20 ...

八进制:
?0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7?
10 ?11 ?12 ?13 ?...

十进制 转 二进制?

除2取余法

二进制转十进制:

?加权求和

十六进制 <=> 二进制

1位十六进制数 对应 4位 二进制数

八进制 <=> 二进制

1位八进制数 对应 3位 二进制数

(2)变量形式:描述一个变量?

语法:?数据类型 变量名; ?
?

?整型:
? int? ? ? ?
? short? ? ?
? long? ? ??
? long long?
??signed / unsigned?
??

变量名起名:
1.数字,字母,下划线?
2.数字不是开头?
3.区分大小写?
4.不能与关键字重名?
5.不要和系统二级关键词重名 ?(include 预处理的命令)
6.不能与库函数重名
??

int a = 10; //初始化 ? 开空间的同时给了值

int a; ? ?//先开空间 后给值?

a = 10; // 赋值?

int a = 0x12345678;?


大端存储 :与小端相反
小端存储:?高高低低
? ?
?高位数据 存储在 高地址处?
?低位数据 存储在 低地址处

有符号数:有一位为符号位? ? ?包含了 正数 负数?
无符号数:不包含符号位? ? ? ? ?包含非负数

整数在计算机中存的都是补码?

正数:?原码 反码 补码 都是一样的

?负数:?补码 = 反码 + 1

unsigned short? ? ? [0~2^16-1]? ? ? ? ? ? ? ? ? ? ? // 范围 0~65536-1?
signed short? ? ? ? ? [-2^15 ~ +2^15-1]? ? ? ? ? // 范围 -32768 ~ 32767?

2、浮点型:
(1)常量形式?
?1.234?
?1.2e3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //科学计数法形式 ?//1.2*10^3?
?1.2E3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //e后面 可以是正数 或 负数 不能是小数?

(2)变量形式?

float? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//单精度?
double? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//双精度?

(3)数据类型?
?存储? ???6.25
?? ??? step1: 将小数 转换为 二进制形式的小数 ? ? ? ??
? ? ? ?整数部分: (除2取余法) ? ? ??
? ? ? ?0110 ??
? ? ? ?小数部分:(乘2取整法)
? ? ?0.25 * 2 = 0.5 ?--- 0
? ? ? 0.5 ?* 2 = 1 ? ?--- 1 ? ?
? ? ? 组合:
? ? ? 0110.01?
? ?step2:将二进制形式的小数,写成科学计数法形式 ? ??? ? ??
?? ? ?1234.56 ---> 1.23456*10^3?
? ? ?110.01 ---> 1.1001 * 2^2 //科学计数法形式?
?
? ?step3:按照 IEEE 754 标准 存放 ?
? ? ??
?? ? ?1位 符号位|8位-指数位|尾数位?
? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ?|
? ? ? ? ? ? ? ? ? 0 ? ?| ?2 + 127 |
? ? ? ? ? ? ? ? ? ? ? ? | -127~128 |
?? ??? ??? ? ? ? 1000 0001 ? 1001 0000 0000 0000 0000?
?? ??? ??? ??? ??
? ? ? ? ? ? ? ? ? 0100 0000 1100 1000 0000 0000 0000 0000
? ? ? ? ? ? ? ? ? ? ? ? 4? ? ? 0? ? ? c? ? ? ? 8 ? ? ?0? ? ? ? 0? ? ? ?0? ? ? ?0?? ?

? ?double ?8字节 ?
???符号位|指数位|尾数位
? ? ? ? ?| ?11位|52位 ?
? ? ? ? ? +1023

? ? float?
? 符号位|指数位|尾数位
?? ? ? ?| ?8 位|23位 ?
? ? ? ? ?+127
?? ??? ??
? 浮点数的比较问题:统一精度?

? ?浮点常量的类型:

? 默认识别为double类型?
? 0.9f? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //表示识别为 float类型?
? 0.9L? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//L表示long double?
?
?整型常量:
?说明类型
?123L? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//long int?
?123LL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//long long int?
?123UL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

3、字符型:
?a b c? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //unsigned long int?

字符数据:
? ? ? ? ? ? ? ? ? ?存到计算机? ? ? ? ? ??a ---> 编码值 (数值) ---> 无符号的整数

常量形式:?'a'? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //字符常量?

变量:?char ch;? ? ? ? ? ? ? ? ? ? ? ? ? ? //tiny int?
?
?unsigned char ?[0~2^8-1]? ? ? ? ? ? ? ? //范围? ? ??0~?255
?signed char ? ?[-128~127]? ? ? ? ? ? ? ??//范围? ? ? -128~127

ascii表:
0~32 控制字符 不可见?
'0'~'9' //48~57
'A'~'Z' //65~90?
'a'~'z' //97~122?
'0' ----- 0
大小写转换?
加减32

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