【从零开始的嵌入式生活】必备基础知识1——数据的表示和程序编译调试
前言又鸽了几天,从今天开始的目标是每天一更。记录学习生活希望大家可以跟着我一起学习,一起加油!三连即可提高学习效率0.0????????作者简介:一个学嵌入式的年轻人✨联系方式:2201891280(QQ)????源码地址:https://gitee.com/xingleigao/study_qianrushi⏳全文大约阅读时间: 60min文章目录前言1.基础知识2.数据的表示1.基础知识冯﹒诺
前言
又鸽了几天,从今天开始的目标是每天一更。记录学习生活
希望大家可以跟着我一起学习,一起加油!
三连即可提高学习效率0.0
🧑🏻作者简介:一个学嵌入式的年轻人
✨联系方式:2201891280(QQ)
📔源码地址:https://gitee.com/xingleigao/study_qianrushi
⏳全文大约阅读时间: 60min
1.基础知识
冯﹒诺依曼模型
- 计算机硬件由下图中的5部分构成
- 存储程序的思想:系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程
寄存器的分类
- 主存储器即内存。程序中待处理的数据和处理的结果都存储在内存中。
- 外存储器是用来长期保存数据的大容量存储器。
- 寄存器是CPU内部的高速存储器,速度快,数目少。
什么是程序
程序就是系统可以识别的一组有序的指令。存储在磁盘上,被加载到内存中执行。
语言的发展
程序设计步骤
螺旋前进,不断发展。。。。233
2.数据的表示
数值数据的表示
主要包含十进制、二进制、十六进制和八进制
基数与各数位的权
- 基数是指该进位制中允许选用的基本数码的个数。
- 位权的大小是以基数为底,数字所在位置的序号为指数的整数次幂。
例如:十进制就是
以十为基数的
123 = 1X100 + 2X10 + 3X1
= 1X102 + 2X101 + 3X100
进制的的转换
十六进制转十进制:
0xa6f = aX162 + 6X161+ fX160= 2560+96+15 = 2671
=(1010 0110 1111)2
=1X211 + 1X29 + 1X26 + 1X25 + 1X23 + 1X22 + 1X21 + 1X20
= 2671这里其实可以发现十六进制就是一个位变成四个二进制,所以十六进制比较常用
各种数据表示方式
3.程序编译调试
程序的编译
GCC(GNU Compiler)是GNU推出的多平台编译器
可将C、C++源程序编译连接成可执行文件,支持以下后缀:
后缀 功能 .c c语言源文件 .h 程序所包含的头文件 .i 已经预编译过的C源代码文件 .s 汇编语言代码源文件 .o 编译后的目标文件
GCC编译器
gcc –o hello hello.c
参数 功能 -o 输出可执行文件 -c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件 -g 用于调试 /hello 查看输出结果 -Wall 显示警告信息
就可以写出来一个hello world小程序了
小练习:
写一个小程序计算1+2+…+10的结果
程序的调试
利用__FILE__,LINE,__FUNCTION__实现代码跟踪调试
#include <stdio.h> int main(int argc,char **argv) { printf("%s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); return 0; }
下面的结果就是
可以显示出对应的文件函数和行号
写在最后
第二篇文章又墨迹了好几天,最近买了个新桌子可以远离床了,接下来的目标就是每天至少一篇,一月之后去搬砖!!!!
今天基本上知识不算特别重要,调试之后还会进一步讲解,大家有个大概的印象就好,在接下来的生活中会逐步的利用这些命令来提高我们的编程能力,希望我能不断的去更新这个系列的文章。
另外我在更新的就是算法笔记的一些例题笔记,这个系列是用于提高我的算法能力,如果有兴趣对算法领域感兴趣找不到合适的入门文章也可以追更,如果我更新的太慢了请大家点赞收藏,一键三连才能更有更新的动力呀0.0
更多推荐
所有评论(0)