- 博客(64)
- 收藏
- 关注
原创 51汇编指令集
ADDC是单片机的加法指令,与ADD不同的是ADDC可以将进位C(Cy)中的内容一起相加,Cy是标志寄存器PSW(Program Status Word)中的一位标志位,当运算过程最高位有进位的时候,Cy会被置位成1,这时使用ADDC即可与Cy里面的1一起相加。汇编中的指令是一种助记符,以助记符代替指令的机器码,因为指令使用起来也比较繁琐,所以才出现了后期的高级语言。Ri:当前寄存器区中可作间接寻址寄存器的2个寄存器(i=0 1)rel:相对转移指令中的偏移量,为8位带符号补码数。数据传送类指令28条;
2022-11-22 14:39:44
1867
原创 C51汇编的7种寻址方式
这种寻址方式以程序计数器PC或DPTR为基址寄存器,累加器A为变址寄存器,变址寻址时,把两者的内容相加,所得到的结果作为操作数的地址。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。变址寻址只能读出程序内存入的值,而不能写入,也就是说变址寻址这种方式只能对程序存储器进行寻址,或者说它是专门针对程序存储器的寻址方式。把指令中给定的地址偏移量与本指令所在单元地址(PC内容)相加得到真正有效的操作数所存放的地址。寻址方式:是在指令中给出的寻找操作数地址的方法。
2022-11-21 22:44:41
2670
原创 指针数组和数组指针,指针常量和常量指针
没有()的情况下parr先与[]结合,parr成为一个数组,加了()之后p优先与*结合成为一个指针,再加上[]之后成为一个指针数组。从右往左看,*p代表p是一个指针变量,int代表这个指针类型为int,const修饰的是*p,所以指向的值是一个常量。从右往左看,p是一个变量名,然后使用const修饰成为一个常量,加。指针常量的本质为一个常量,并且用指针来修饰它,所以指针是个常量。指针数组本质是一个数组,里面存放的是指针。数组指针本质是一个指针,一个指向数组的指针。常量指针本质是一个指针,指向常量的指针。
2022-11-08 17:33:44
255
原创 JS学习笔记一
javascript代码是由浏览器中的javascript解析器来执行的。BOM(浏览器对象模型):操作浏览器,比如页面弹窗,检测窗口亮度、存储数据到浏览器等等。所有函数都有一个arguments对象,arguments对象中存储了传递的所有实参。DOM(页面文档模型):操作文档,比如对页面元素进行移动、大小、添加删除等操作。js的数据类型是只有程序在运行过程中根据=右边的值来确定的。通过修改数组名.length修改数组长度。函数表达式的引用必须写在函数表达式的下面。js的数据类型是动态的,同py。
2022-10-14 13:15:09
182
原创 Docker入门笔记
在理解Docker之前我们先将其理解为一个虚拟机的系统镜像,我们可以在系统中配置各种开发环境,后续我们可以把这个系统镜像装到不同平台的系统中去,比如linux,mac,windows。Docker与虚拟机的作用是类似的,但是具体实现有很大的差别。详细的解释可以看这篇文章
2022-10-09 02:37:30
230
1
原创 ESP8266桌面时钟总结
做到这里只是简单的表示了一下时间,还有很多地方可以优化,比如可以修改灯珠的颜色,根据时间调整亮度,提供一个接口用于修改这些参数。后续也会慢慢优化,添加一些功能。
2022-10-02 00:16:00
913
原创 使用session解决动态刷新的图片验证码
我们在爬网站的时候经常会遇到输入图片验证码的情况使用selenium访问网页并截图进行识别找到验证码图片的地址进行访问并保存进行识别第一种方法所见即所得,模仿正常人浏览网页输入验证码的方式,但是有个缺点,使用selenium需要图形化界面,降低了访问效率。第二种方法访问效率高但是也有个致命的缺点,就是验证码是动态刷新的,每次访问验证码的url时验证码都会变化,那么我们该怎么解决呢?这里需要使用session和cookie来处理。
2022-09-29 17:17:22
1008
原创 【零基础QQ机器人开发二】服务器篇
由于上篇QQ聊天机器人的文章阅读量挺高的,所以再出一篇上云的教程,,通过云服务器我们可以把程序挂在服务器,实现程序的二十四小时工作
2022-09-24 12:15:31
1322
2
原创 Markdown语法总结+Typora快捷键
Typora是我使用的第一款markdown编辑器,因为当时都推荐这个,所以就用了它。Typora的优点是轻量级,界面简约,快捷键非常多,是一个适合新手入门Markdown的编辑器,刚开始还是免费使用,但是现在开始收费了,有条件的同学可以支持一下,没有条件的同学可以自行百度解决方法 : )可能刚上手的时候感觉很难,但是用惯了之后就会发现效率非常高,现在我写博客,写日记,写笔记都用Markdown格式。
2022-09-11 15:52:21
498
2
原创 python验证码识别库ddddocr
验证码识别可以说是最浪费时间的一部分了,因为打码平台都是要花钱钱的,所以本着能白嫖绝不付费的原则,费了我九牛二虎之力后,终于找到了一个验证码识别库。这个库对于这种简单的验证码识别率还是挺高的。
2022-09-03 21:09:48
1512
1
原创 scanf函数详解
C库包含多个输入输出函数,scanf是其中一个比较常用的,因为scanf可以读取不同格式的数据。输入函数除了scanf之外还有fgets、getcahr。printf()函数与scanf()函数是C语言中较为常用的输入输出函数,因为这两个函数的参数是不确定的,编译器也没有办法进行检查,因此用的时候挺容易报错,下面就总结一下scanf()函数的用法。...
2022-08-26 19:58:59
5720
原创 printf()转换字符总结
原本以为C语言中的转换字符并没有多少,今天深入了解之后发现我还是年轻了,因此整理下来以供参考。!!printf()函数中的转换字符在计算机中的作用是把原先在计算机中存储的二进制数据转换成相应的形式展现出来,以下列举了printf()函数中的转换字符。转换字符输出%a或A浮点型、十六进制、p计数法%cchar型,单个字符%dint型%e或E科学计数法(e计数法)输出浮点型%f浮点型%g或G根据值的不同,自动选择%f或%e%e用于指数小于-4或者大于等于其精度时%i。...
2022-08-24 21:13:30
829
5
转载 JSON文件读写
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!1、将python字典数据用dumps()方法编码成JSON字符串,然后再写入json文件中。json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json.load()把文件打开从字符串转换成数据类型。
2022-08-21 20:18:54
4100
3
原创 【算法入门】快速排序
快速排序的核心思想是分而治之,也就是区域划分的问题,其解法也非常多,在这里用一个理解起来比较简单的方式来学习快速排序。我们需要将5之后的元素划分为两个区域,小于5的区域和大于5的区域, 这一步该怎么实现呢?现在我们借助 i 和 j 两个变量从数组的两端向中间进行遍历和交换,将左边区域大于5的元素与右边区域小于5的元素进行交换,在此过程中i不断向右遍历,j向左遍历,当 i 和 j 所在位置相同时即形成了两个区域, 左边的区域小于5,右边的区域大于5,再将5插入到合适的位置,此时我们完成
2022-08-21 08:53:55
177
1
原创 【算法入门系列】递归
递归(recursion)的定义是在定义一个过程或函数时出现调用本过程或本函数的成分。在递归中比较经典的一个例子就是:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事!故事是什么呢’"…递归简单来说就是自己调用自己。
2022-08-20 22:03:31
227
原创 【算法入门系列】汉诺塔问题
依据上法,可解决n -1个盘子从A杆移到B杆(第一步)或从B杆移到C杆(第三步)问题。3、2,直到移动1个盘的操作,而移动一个盘的操作是可以直接完成的。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。假设有n片,移动次数是f(n).显然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。
2022-08-20 21:32:46
415
原创 【算法入门系列】折半插入排序
折半插入排序其实是在直接插入排序的基础上,结合了二分查找法的思想,顺序的二分查找替代了直接插入排序中遍历查找的过程,从而更快的能够确定待插入元素的位置,但是由于移动次数并没有发生改变,所以两者的时间复杂度相同。折半插入排序是稳定的,其时间复杂度为O(n2)。写在结尾: 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。刚开始写博客,文章中难免会有纰漏,如有不足,欢迎各位批评指点。CSDN21天学习挑战赛。...
2022-08-14 01:00:00
360
2
原创 【算法入门系列】冒泡排序
冒泡排序的基本思路是最后面的元素开始,对每两个相邻的关键字进行比较,且使关键字较小的元素换至关键字较大的元素之前,使得一趟冒泡排序后关键字最小的元素到达最上端, 接着,在剩下的元素中找关键字次小的元素,并把它换到第二个位置上,遍历n-1趟之后整个数组变为有序的。写在结尾: 冒泡排序是我认识的第一个算法,大约是两年前的事了,当时学的时候还是懵懵懂懂,在经历了这么久的沉淀之后我惊奇的发现我竟然还没有忘,仔细想想原因应该是自己对算法的理解程度加深导致的。输入:5,4,3,2,1。输出:1,2,3,4,5。...
2022-08-13 17:41:48
339
2
原创 【算法入门系列】二分查找
折半查找又叫做二分查找, 是一种效率较高的查找算法,但是前提条件是要求线性表是有序的- 折半查找的基本思路是首先确定表的中间位置,将关键字与该值进行比较- - 如果该值等于关键字则返回该值的索引 - 如果该值小于关键字则在中间位置的左边继续二分查找 - 如果该值大于关键字则在中间位置的右边继续二分查找- 还有另外一种思路就是递归,因为如果中间值不等于key值,程序就要一直进行二分查找直至找到...
2022-08-10 11:14:23
627
1
原创 【算法入门系列-直接选择排序】
直接选择排序的基本思想是从无序区中找出最小元素与无序区第一个元素进行互换,这样原来无序区第一个位置成为有序区,经历从0到n-1无序区(每次遍历之后有序区的元素总是小于无序区,因此当无序区只剩一个元素后即为最大值,不需要进行遍历)的遍历后即可排好。...
2022-08-05 10:46:27
182
1
原创 【算法入门系列-顺序查找】
顺序查找是一种最简单的查找方法, 其思路是从表的一端向表的另一端进行遍历并与所要查找的值(key)进行比较(表中无重复元素),如果表中元素与key相同,则返回该元素在表中的位置,若表中没有该元素则查找失败。...
2022-08-01 17:37:57
196
slenium自动化体温上报,含验证码识别
2022-09-03
如何用vscode环境开发stm32的rtthread程序
2023-03-21
C++怎么在类中声明一个容器成员啊
2022-11-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅