自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 tm1637

TM1637是带键盘扫描接口的LED驱动控制专用电路。显示模式(8段x6位),支持共阳数码管输出。键扫描(8x2bit),不支持组合按键。两线串行接口(CLK,DIO)。

2024-01-19 14:32:52 416

原创 检错/纠错编码

奇偶校验码是通过增加冗余位使得码字中1的个数恒为奇数或偶数的编码方法,它是一种检错码。

2023-10-07 16:09:34 85

原创 红米9A root

https://github.com/HuskyDG/magisk-files/releases 或 http://miuiver.cn/?post=189。

2023-09-20 10:42:12 967

原创 最小生成树算法Prim与Kruskal的证明

如图所示,(V1,V3)是图1中权值最小的边,除去顶点V3,及其相关边,得图2。易证图1的最小生成树,一定是图2的最小生成树连上V3所得。任意给定一个图2的最小生成树,如何要得到图1的最小生成树呢?(Vi,V3)选一个权值最小的连上就行,而(V1,V3)是图1中权值最小的边,一定也是(Vi,V3)中权值最小的边。故图1的最小生成树一定包含权值最小的边(V1,V3),证明完毕。

2023-08-24 09:57:57 79

原创 关于Dijkstra算法和Floyd的证明

而这个是很容易得出答案的,以上图为例子,设V0=顶点1,那么比较10,无穷,无穷,5,很容易确定。

2023-08-24 00:41:56 40

原创 传值、传地址、传引用以及LNode* L和 LNode* &L的区别

这部分的代码是在的代码基础上改的。

2023-08-15 16:47:30 134

原创 函数指针。。

【代码】函数指针。。

2023-08-14 14:28:49 24

原创 记录:嵌入式报错

记录代码中出现的奇怪的错误。

2023-08-11 09:01:43 66

原创 关于标志信息ZF、OF、SF、CF的理解

进/借位标志,最近的无符号整数相加/减后的进/借位情况,有进/借位时,CF=1,否则CF=0准确来说CF是用于判断无符号数的溢出的,CF为1,则发生溢出零标志,最近的操作数运算结果是否为0,若是,ZF=1,否则ZF=0符号标志,最近的带符号数运算结果的符号,若为负,SF=1,否则SF=0溢出标志,最近的带符号数运算结果是否溢出,若溢出,OF=1,否则OF=0。

2023-07-24 11:13:46 5430 3

原创 SSD1306与SH1106的区别

他认为SH1106与SSD1306在除了初始化的地方以外,其余无区别。而实际上因此要修改的地方不止于初始化代码,借这位的代码做一下演示。那为什么SH1106与SSD1306使用时会有不同?首先,参考这位的说法。

2023-06-29 15:39:11 2445 2

原创 补码计算的原理

首先,我个人认为,,与进制无关,进制只是数的表现形式而已x补​x256))mod256所以−3十进制​10000011二进制原码​11111101二进制补码​253十进制补码​256−3−3mod256253mod256所以下面我以十进制为例,演示补码可以进行加法和乘法,其中-5,-30的补码是251与226之所以非要用十进制而不是二进制演示,我觉得十进制方便看,好理解而已显然补码进行四则运算是没有问题的。

2023-06-16 17:06:49 481

原创 图解设计模式笔记:装饰器模式

​ 在不改变原有对象的基础上,将功能附加到对象上,从而透明且动态的扩展类的功能。

2023-03-20 04:19:19 73

原创 图解设计模式笔记:单例模式

双重检查锁模式是一种非常好的单例实现模式,解决了单例、性能、线程安全问题,上面的双重检测锁模式看上去完美无缺,其实是存在问题,在多线程的情况下,可能会出现空指针问题,出现问题的原因是JVM在实例化对象的时候会进行优化和指令重排序操作。枚举类实现单例模式是极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。​ 缺点:实例对象是随着类的加载而创建的。

2023-03-18 14:36:19 35

原创 图解设计模式笔记:适配器设计模式

及其子孙类都可以被适配。另外,对象适配器对于增加一些新行为非常方便,而且新增加的行为同时适用于所有的源。适配器设计模式有3种形式:类适配器模式、对象适配器模式、接口适配器模式(缺省适配器模式)。为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。对象适配器使用的是组合的方式,·所以。在Servlet中就使用了接口适配器模式。类适配器使用的是继承的方式,直接继承了。

2023-03-18 13:29:50 54

原创 图解设计模式笔记:迭代器模式(Iterator)

*意图:**提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。优缺点:迭代器模式优点 : 分离 了 集合对象 的 遍历行为;抽象出了 迭代器 负责 集合对象的遍历 , 可以让外部的代码 透明的 访问集合内部的数据;迭代器模式缺点 : 类的个数成对增加;迭代器模式 , 将 存储数据 , 遍历数据 两个职责拆分;如果新添加一个 集合类 , 需要增加该 集合类 对应的 迭代器类 , 类的个数成对增加 , 在一定程度上 , 增加了系统复杂性;

2023-03-18 12:17:55 80

原创 HashMap的容量为什么必定为2的次幂

HashMap的容量为什么必定为2的次幂

2022-12-15 22:42:52 217

原创 equals方法和hashCode

equals方法和hashCode

2022-12-08 19:57:25 54

原创 Java的动态绑定和静态绑定

java的静态绑定和动态绑定。

2022-11-15 12:19:24 1411 2

原创 数据结构推荐

【【强烈推荐】深入浅出数据结构 - 顶尖程序员图文讲解 - UP主翻译校对 (已完结)-哔哩哔哩】 https://b23.tv/yw71NFJ

2022-07-01 17:40:10 176

原创 PTA 7-36 复数四则运算

#include<stdio.h>#include<math.h>typedef struct{ double real; double imag;}Complex;int print_complex(Complex num){ if(fabs(num.real)>=0.05 && fabs(num.imag)>=0.05)//实部虚部均非0 printf("%.1lf%+.1lfi",n..

2022-05-01 13:42:14 416

原创 PTA 7-35 有理数均值

#include<stdio.h>int yuefeng(int *fz,int *fm){ if(*fz==0) { *fm=1; } int fu=1; if(*fz<0) { fu=-1; *fz=-*fz; } for(int i=2;i<=*fz;i=i+1) { if(*fz%i==0&&*fm%i==0) { *fz=*fz/i; *f..

2022-04-24 13:55:52 278

原创 PTA 7-34 通讯录的录入与显示

#include<stdio.h>#include<string.h>int main(){ //输入 int N; scanf("%d\n",&N); char name[10][20],birth[10][20],sex[10][20],tel[10][20],phone[10][20]; for(int i=0;i<N;i++) scanf("%s%s%s%s%s",name[i],birth[i],sex[i],tel[i],phone[..

2022-04-24 12:58:47 2386

原创 PTA 7-33 有理数加法

#include<stdio.h>int yuefeng(int *fz,int *fm){ if(*fz==*fm) { *fz=1; *fm=1; } for(int i=2;i<=*fz;i=i+1) { if(*fz%i==0&&*fm%i==0) { *fz=*fz/i; *fm=*fm/i; i=1; } } return 0;}int main(){ int fz,fm,fz1,fm1,..

2022-04-24 02:20:44 355

原创 PTA 7-29 删除字符串中的子串

#include<stdio.h>#include <string.h>int main(){ char S1[81]="\0",S2[81]="\0",t[81]="\0",*p=NULL; gets(S1); gets(S2); int num2=strlen(S2); while((p=strstr(S1,S2))!=NULL) { strcpy(t,p+num2); *p='\0'; strcat(S1,t); } printf("%.

2022-04-24 02:01:45 744 3

原创 PTA 7-32 说反话-加强版

思路:读入字符串str,那么用output数组存储每个单词的首字母,及尾字母后一字母在字符串的下标。那么已知这两个数据便可以输出该单词。考虑到逆序输出的需要,逆序读取字符串。如字符串”#apple##“(#表示空格),共8个字符逆序读取读第1个字符#,不是尾字母后一个也不是首字母,output不变读第2个字符#,是尾字母后一个,下标6,则output={6}读第3个字符e,不是尾字母后一个也不是首字母,output不变...读第7个字符e,是首字母,下标1,则output={6,1}.

2022-04-24 01:13:15 575

原创 PTA 7-31 字符串循环左移

#include<stdio.h>#include <string.h>int main(){ //读入数据 int N,num=0; char str[101]="1234"; gets(str); scanf("%d",&N); num=strlen(str); //循环左移 N=N%num; char l_str[101]; strcpy(l_str,str+N); str[N]='\0'; strcat(l_str,st.

2022-04-23 22:48:20 61

原创 PTA 7-30 字符串的冒泡排序

#include<stdio.h>#include <string.h>int main(){ //读入数据 int N,K; scanf("%d %d",&N,&K); char str[N][11],t[11]; for(int i=0;i<N;i++) { scanf("%s",str[i]); } //冒泡排序法 for(int i=0;i<K;i++) { for(int p=0,p_next=1;p_..

2022-04-23 22:20:33 637

原创 PTA 7-28 猴子选大王 (20 分)

题目思路:标记淘汰猴子,在未淘汰猴子中循环数数,满三淘汰,当只剩一未淘汰猴,即选出猴王。#include<stdio.h>#include<math.h>int main(){ //初始化猴群 int n; scanf("%d",&n); int monkey[n]; for(int i=0;i<n;i++) { monkey[i]=1;//未被淘汰 } //选猴王 int num=n;//候选猴数 int i=0,j=0;//猴报的

2022-04-23 11:43:22 431

空空如也

空空如也

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

TA关注的人

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