自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cdreamfly的博客

学习是一种信仰

  • 博客(187)
  • 资源 (1)
  • 收藏
  • 关注

原创 机器语言编写helloworld

计算机用高低电平分别表示0和1,所有的数据在存储和运算时都要使用二进制表示,如果我们想用数字表示文本,就要对每一个文本进行编码,目的就是文本转换成数值。out为操作码的助记符,AL为8位寄存器,DX是16位寄存器,ASCII码是8位的,串口的地址0x3F8(IBM计算机外设地址)是需要使用16位的表示的。因为是向后跳转,所以是-35,又因为计算机中使用的是补码,所以我们需要转换一下,根据原码转补码的规则-35的原码是10100011,补码就为11011101,使用16进制表示,即DD。计算机怎么表示负数?

2024-03-31 22:14:55 689

原创 逻辑运算与逻辑门

宇宙中物质的基本构成单位是原子,原子是由一个原子核和若干电子组成。原子核带有正电荷,电子带有负电荷。由于电荷相反,原子核和轨道上的电子之间有一定的吸引力,因为电子在一定轨道上围绕着原子核运动。原子的最外层轨道上可能有松散结构的电子,它们只要很小的能量就可以从母体原子中分离出来,因此这些电子也被称为自由电子。自由电子在物质内部随即移动,从一个原子转移到另一个原子。当一个物体因为外部能量失去电子后,其原子核携带的正电荷就要大于负电荷,物体表现为带有正电。

2024-03-11 21:18:38 930

原创 第一个hello驱动

这里我们使用把驱动程序编译成以.ko为后缀的模块文件的方式,首先要保证kernel已经被成功编译过的。再修改Makefile,其中CROSS_COMPILE,KDIR使用自己的目录。编译成功后会生成hello.ko文件。

2024-01-28 23:31:35 302 2

原创 C++ 虚函数表

public ://和上上个类不同的是多了一个自身定义的虚函数. 和上个类不同的是没有基类虚函数的覆盖. virtual void derive1_fun1() {} };为嘛呢?现在继承类明明定义了自身的虚函数,但不见了?类对象的大小,以及成员偏移情况居然没有变化!要注意:我为什么使用指针的方式调用?说明一下:因为如果不使用指针调用,虚函数调用是不会发生动态绑定的哦!你若直接 d1.derive1_fun1();

2022-10-17 21:23:28 5656 7

原创 C/C++ static

普通的成员函数一般都隐含了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。静态局部变量在全局数据区分配内存,在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化,一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0,它始终驻留在全局数据区,直到程序运行结束。静态全局变量在全局数据区分配内存,未经初始化的会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化),在声明它的整个文件都是可见的,而在文件之外是不可见的;

2022-10-13 21:58:14 444

原创 C++ const

C++ const。

2022-10-13 20:41:01 186

原创 C++ Protobuf

protobuf (protocol buffer) 是谷歌内部的混合语言数据标准。通过将结构化的数据进行序列化(串行化),用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。解析消息时,如果编码的消息不包含特定的单数元素,则已分析对象中的相应字段将设置为该字段的默认值。反序列化: 在其他的计算环境中,将序列化后的数据还原为数据结构和对象。序列化: 将结构数据或者对象转换成能够用于存储和传输的格式。...

2022-08-27 22:28:10 1368

原创 C++11实现的数据库连接池

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;类似的还有线程池。

2022-08-25 14:59:16 926

原创 快速排序及优化

每次从当前考虑的数组中选一个元素,把这个元素想办法挪到应该排好序的位置,比如4这个元素,它就有一个性质4之前的元素都是小于它的,之后的元素都是大于它的,之后我们要做的事情是对小于4和大于4的数组分别继续使用快速排序的思路,逐渐递归下去完成整个排序过程。...

2022-07-20 01:37:27 191 3

原创 归并排序及优化

对于arr[mid]

2022-07-19 13:36:01 301

原创 选择排序/插入排序/冒泡排序

首先对于第零个元素8保持不变,然后考察6,先把6赋值一份,然后看看6是不是适合放在当前的位置,就和前面的元素做比较,如果和前一元素要小就说明不应该放在当前的这个位置,而8因该放在当前的这个位置,所以把8向后挪一位,之后再考察6是不是因该放在前一位置,以此类推。对于第一个元素我们不动,因为当我们只考虑8这个元素是它已经是有序的了,我们要看的是6这个元素,对于这个元素我们要的是把它放到前面合适的位置,跟它前面的8相比6比8小索引它们要调换一下位置,此时前两个元素就有序了,以此类推。...

2022-07-18 20:15:32 176

原创 哈希表(HashTable)

哈希表:也叫做散列表。是根据关键字和值(Key-Value)直接进行访问的数据结构。也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(散列函数),用于存放记录的数组叫做 哈希表(散列表)。 哈希表的关键思想是使用哈希函数,将键 key 和值 value 映射到对应表的某个区块中。可以将算法思想分为两个部分:哈希表的原理示例图如下所示:哈希函数:将哈希表中元素的关键键值映射为元

2022-07-13 21:19:59 54241 1

原创 2-3树/红黑树

为了维护2-3树绝对平衡的性质,插入结点时就要符合一下逻辑:

2022-07-13 19:09:37 105

原创 AVL 树

插入或删除节点后,可能会造成 AVL 树的平衡被破坏,因此,需要沿着从被插入/删除的节点到根的路径对树进行维护。就是在树的某一部分的不平衡度超过一个阈值后触发相应的平衡操作,保证树的平衡度在可以接受的范围内...

2022-07-13 16:25:45 172

原创 并查集(UnionFind)

并查集和其他树形结构不一样,是由孩子指向父亲,它解决了一些连接问题,怎么才能确定两个点是否相连呢?并查集可以非常快的确定两个点是否连接。我们可以用一个数组表示,对于0到9每个不同的编号可以表示不同的对象,这里可以看作一个点,而编号对应的不同的元素可以表示不同的集合,其中[0,2,4,6,8]表示一个集合。这样就可以表示连接问题了,0和2就是表示相连接,因为它们在一个集合,0和1因不在一个集合所以不连接。对于一组数据并查集主要支持两个动作:优化unionElements从代码中可以看到:将每个元素,

2022-07-08 19:59:49 203

原创 字典树(Trie)

字典树(TrieTree),是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串,如01字典树)。主要思想是利用字符串的公共前缀来节约存储空间。很好地利用了串的公共前缀,节约了存储空间。字典树主要包含两种操作,插入和查找。...

2022-07-07 17:00:30 113

原创 线段树(SegmentTree)

什么是线段树:对于一个二叉树,每一个节点存储的是一个线段或是一个区间相应的信息。

2022-07-06 17:13:52 1239

原创 HTTP Web安全

安全

2022-06-15 21:14:04 468

原创 HTTPS&SPDY&HTTP2&QUIC&HTTP3

HTTP

2022-06-15 20:42:41 170

原创 HTTP与WebSocket/WebDAV

HTTP与WebSocket/WebDAV

2022-06-15 20:38:11 411

原创 HTTP缓存

HTTP缓存

2022-06-15 20:28:35 89

原创 HTTP断点续传与多线程下载

HTTP内容协商机制断点续传与多线程

2022-06-15 20:26:54 98

原创 HTTP长连接和短链接代理与网关

HTTP长连接和短链接代理与网关

2022-06-15 20:23:02 308

原创 HTTP编码和解码与基本认证

咱们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这二者之间的转换规则就须要一个统一的标准,不然把计算机上文档就乱码了;因而为了实现转换标准,各类字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值表明了哪一个文字(解码)的转换关系。......

2022-06-15 14:18:35 198

原创 HTTP Cookie/Session

HTTP Cookie/Session

2022-06-14 23:46:37 63

原创 HTTP报文结构

HTTP协议

2022-06-14 23:31:45 114

原创 C++设计模式 - 总结

一个目标:管理变化,提高复用掌握设计模式一个核心目标:管理变化,提高复用。在使用设计模式中发现并没有实现复用,这就和设计初衷相违背了,说明代买写的不好。两种手段:分解VS.抽象在代码设计中,该开始想要怎样面向对象先要分解,比如这是梨,这是苹果,这是香蕉建立这杨分解的思维,知道它们不同。但是呢我们很快建立抽象的思维,知道这一类都归属水果,然后就可以在思维管理里面或程序管理里面针对抽象进行统一的管理,比如水果有哪些功能的特征。八大原则依赖倒置原则(DIP)高层模块(稳定)不应该依赖于低层模块(变

2022-03-26 18:52:27 1003

原创 C++设计模式 - 解析器模式(Interpreter)

领域规则模式在特定领域中,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出在该领域下的一般性解决方案。典型模式InterpreterInterpreter动机( Motivation )在软件构建过程中,如果某一特定领域的问题比较复杂 ,类似的结构不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。模式定义

2022-03-25 20:25:18 1477

原创 C++设计模式 - 访问器模式(Visitor)

行为变化模式在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化” 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。典型模式CommandVisitorVisitor动机( Motivation )在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法) , 如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。如何在不更改类层次结构的前提下,在运行时根据需要 透明地为类层次结构.

2022-03-25 18:44:36 167

原创 C++设计模式 - 命令模式(Command)

行为变化模式在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化” 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。典型模式CommandVisitorCommand动机( Motivation )在软件构建过程中,“行为请求者” 与"行为实现者”通常呈现一种“紧耦合”。但在某些场合一比如需 要对行为进行“记录、撤销/重(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与

2022-03-25 17:55:59 402

原创 C++设计模式 - 职责链模式(Chain of Resposibility)

数据结构模式常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。典型模式CompositeIteratorChain of ResposibilityChain of Resposibility动机( Motivation )在软件构建过程中, -个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果

2022-03-22 23:23:55 152

原创 C++设计模式 - 迭代器模式(Iterator)

数据结构模式常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。典型模式CompositeIteratorChain of ResposibilityIterator动机( Motivation )在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代

2022-03-22 22:15:57 1018

原创 C++设计模式 - 组合模式(Composite)

数据结构模式常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。典型模式CompositeIteratorChain of ResposibilityComposite动机( Motivation )在软件在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起

2022-03-22 21:42:39 1787

原创 C++设计模式 - 备忘录模式(Memento)

状态变化模式在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。典型模式StateMementoMemento动机(Motivation)在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封

2022-03-22 18:51:15 579

原创 C++设计模式 - 状态模式(State)

状态变化模式在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。典型模式StateMemento动机(Motivation)在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?模式定义允许一个对象在其内部状态

2022-03-22 18:34:10 266

原创 C++设计模式 -中介者模式(Mediator)

接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式FacadeProxyAdapterMediatorMediator动机( Motivation )在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系 ,如果遇到一-些需求的更改,这种直接的引|用关系将面临不断的变化。在这种情况下,我们可使用一个“中介对象”来管

2022-03-21 22:29:56 374

原创 C++设计模式 - 适配器模式(Adapter)

接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式FacadeProxyAdapterMediatorAdapter动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”? 如何既能利用现有对象的良好实现,同时又能满足新的应用

2022-03-21 19:18:31 888

原创 C++设计模式 - 代理模式(Proxy)

接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式FacadeProxyAdapterMediatorProxy动机(Motivation)在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者 需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的同时来管理/控制这些对象

2022-03-21 17:27:17 594

原创 C++设计模式 - 门面模式(Facade)

接口隔离模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式FacadeProxyAdapterMediatorFacade系统间耦合的复杂度动机(Motivation)上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。如何简化外部客户程序和系统间的交互接口?如何将外部客

2022-03-21 17:26:37 240

原创 C++设计模式 - 桥模式(Bridge)

单一职责模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式DecoratorBridgeBridge动机(Motivation)由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度?模式定义将抽象部分(业务功能)与实现部分(平台实现)

2022-03-19 22:01:30 415

nasm-2.14.02.tar.gz

nasm汇编编译器,适用于

2020-03-19

空空如也

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

TA关注的人

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