自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

八天一吨水的博客

From ignorance to common sense

  • 博客(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

原创 Git学习笔记

是什么?Git是分布式,保存所有修改记录,并用版本号进行区分,便于查看和恢复GitHub是主流的,简单理解为存放代码的网盘。

2022-11-07 11:04:21 187

原创 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

原创 【算法入门系列-插入排序】

插入排序的基本思路是每次将一个待排序的元素按照关键字大小插入到前面已经排好顺序的表中,直至元素全部插入。

2022-08-05 07:30:52 129

原创 【算法入门系列-顺序查找】

顺序查找是一种最简单的查找方法, 其思路是从表的一端向表的另一端进行遍历并与所要查找的值(key)进行比较(表中无重复元素),如果表中元素与key相同,则返回该元素在表中的位置,若表中没有该元素则查找失败。...

2022-08-01 17:37:57 196

原创 【0基础QQ机器人开发】基于go-cqhttp的QQ机器人开发教程,仅供自学

python新手实现功能简单的QQ聊天机器人

2022-07-31 15:18:26 5341 12

slenium自动化体温上报,含验证码识别

selenium写了一个自动上报体温的脚本,因为之前也没有认真学过selenium,只是简单的听说过,只知道selenium是一个模拟浏览器进行访问的一个利器,不过我觉得selenium学起来挺简单的,不过写脚本这一路也是挺曲折的,因此在这里记录一下,总结经验,方便以后继续使用selenium

2022-09-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除