炉边小坐
文章平均质量分 74
是未经系统整理的学习感想,就像冬夜坐在暖炉旁的老故事。
Menou16
萌新小白,码字不易,大佬轻喷,诚盼指教!
展开
-
2022.3.20 分享会Ver.2.0
2022.3.20 深圳大学信息安全协会分享会Ver.2.0主题:密码学基础(部分):经典古典密码选、流密码、对称加密(部分)原创 2022-03-19 21:41:27 · 3697 阅读 · 0 评论 -
2022-3-7~11 UOOC 现代密码学 流密码(基本思想、模型、RC4等算法简介)
由于在修习信息安全基础的同时还修习了现代密码学这门Mooc,因此也和大家分享一下我学习的随想。原创 2022-03-10 00:22:35 · 5717 阅读 · 0 评论 -
2021-12-24 数据结构期末机考复习六 图
1、图的邻接矩阵存储class MGraph{ int Vexnum;// 顶点数 int Arcnum; // 边数 char *Vexs; //顶点信息集,string *Vexs; int **Edges; //边信息集public: MGraph(int n); //构造函数,赋值并分配空间 ~MGraph();}2、邻接表(Adjacency List)邻接表是图的一种链式原创 2021-12-25 12:10:25 · 515 阅读 · 0 评论 -
2021-12-24 数据结构期末机考复习五 树->赫夫曼树
在聊赫夫曼树之前,我们先来了解一下树的其他知识:路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径路径长度:路径上的分支数目树的路径长度:从树根到 每个结点的路径长度之和下图中树路径长度为: 2*1 + 3*2 + 1*3 = 11 (前边是数量,后边是路径长度)我们学过两点之间线段最短,只要出现了路径之长短,我们肯定要找找怎么让路径最短结点的带权路径长度:从结点到树根之间的路径长度与结点上权的乘积树的带权路径长度(WPL):树中所有叶子结点的带权路径.原创 2021-12-24 21:12:26 · 909 阅读 · 0 评论 -
2021-12-23 数据结构期末机考复习 五 树
一般树,不含赫夫曼树原创 2021-12-24 15:39:19 · 381 阅读 · 0 评论 -
2021-12-21 数据结构 期末复习机考之四 串
我反思了一下前两篇的问题,发现讲知识点还是要简明扼要常见的字符串里的名词空串:不含任何字符的串,串长度=0空格串:仅由一个或多个空格组成的串子串:由串中任意个连续的字符组成的子序列。主串:包含子串的串。 如:A=’Shenzhen University’ B=’University’ A为主串,B为子串位置:字符在主串中的序号。子串在主串中的位置以子串第一个字符在主串中的位置来表示。串相等的条件:当两个串的长度相等且各个对应位置的字符都相等时才相等。模式匹配:确定子...原创 2021-12-23 22:49:25 · 1161 阅读 · 0 评论 -
2021-12-21 数据结构 期末复习机考之二 栈
栈和队列都是特殊的线性表,因此定义栈和队列与之前的线性表异曲同工:顺序栈顺序栈的架构顺序栈的特点top=0 或top=base 表示空栈base=NULL表示栈不存在当插入新的栈顶元素时,指针top+1删除栈顶元素时,指针top-1当top>stacksize时,栈满,溢出注意,此处的top栈顶指针是指向栈顶元素的下一个元素,也有一种说法是指向栈顶元素,两种都可,此处采用前者1、创建栈或typedef int SElemType;...原创 2021-12-22 22:51:22 · 872 阅读 · 0 评论 -
2021-12-20 数据结构 期末复习机考之一 线性表(含对象和类)
2021-12-20 数据结构 期末复习机考之一 线性表(含对象和类),文章有点长,你们忍一下原创 2021-12-21 13:46:10 · 826 阅读 · 0 评论 -
2021-10-24 Python 条件判断 “if”语句
编程时,或是日常生活中,我们总会遇到许多条件判断的问题,例如,Mate 40 Pro 售价6999,我们在将他收入囊中前,需要掂量掂量自己的荷包有多少斤两,这时候“掂量”这个动作就是一个判断;用伪代码书写就是:if 我的钱 == 6999; print(“可以买Mate 40 Pro !”)else print(“还不够钱买!赚钱去啊!”)这里明晰一个概念,学过C语言的同学肯定会知道:一个等号是“赋值”,两个等号连用是“判断是否相等”,而==这一判断语句的结果就是“Ture”和“原创 2021-10-24 16:34:35 · 178 阅读 · 0 评论 -
2021-9-28 数据结构学习 第四章 - 栈 和 队列【1024Re】
新学期被作业淹没,将博客晾在这太久了,不禁心生惭愧,于是将今晚本来计划去深圳湾公园散步的时间用来写文章。我在想,要写什么呢,看着案上的数据结构,就决定是你了!看名字是第四章,我是不是错过了什么,其实是正在学栈和队列,剩下的三章会在国庆尽力填坑。假设大家学过线性表,那么栈和队列就是特殊的线性表罢了。我上一次接触栈,是在汇编语言的学习处,是比较硬件的理解,现在学习数据结构,就是从软件、实用的角度来理解栈。上图是栈的模型,栈是允许在同一端进行插入和删除操作的线性表。允许进行插入和删除操作的一端称为栈.原创 2021-10-24 14:55:23 · 2727 阅读 · 0 评论 -
2021-9-6 C++ 引用 降低程序处理时间 (炉边小坐)
今天上数据结构,提到了如何评价一个程序的质量,其首先就是衡量其时间复杂度,复杂度越高,程序的质量可能就越差。今天复习到C++的类,深感其对提升程序质量之好处,故写此文。1、我们如何理解“引用”?引用是个别名,当建立引用时,程序用另外一个名字来初始化它,作为目标址别名使用。对引用的改动就是对目标的改动。建立引用,我们需要:int someInt;int&rInt=someInt;如此,someInt的别名就叫rInt。建立引用,我们先要明确目标的数据类型,再跟&号,最.原创 2021-09-06 21:11:58 · 430 阅读 · 0 评论 -
2021-9-5~9.6 Python 元素.操作数据 【蟒蛇探幽】
首先对迟来的Python系列表示歉意,暑假因为种种原因未能更新,学习也落下不少。最近笔者一直在玩re入门的题目,做到第二题就遇到了.pyc文件,在痛苦的搭建pip后,我们将.pyc拖入无敌神器IDA中反汇编为.py 后,发现只需经过算法逆向一下,即可找到flag,但是笔者不会python,因此写不出脚本,虽尝试用c写之,终无奈作罢,恨啊。因此决定重拾python,并邀请各位读者一同见证,共同进步。本文演示使用:PyCharm CE 2020.3.1提一嘴:输入代码时一定要切换到英文输入法!!!.原创 2021-09-06 10:32:24 · 138 阅读 · 0 评论 -
2021-7-27~29 汇编语言 【BX】 和 loop 【N-1】
BX――基址寄存器(Base Register),常存放存储器地址。我们前文提到了这个寄存器:2021-7-24 8086CPU 内 14 个寄存器功能一览原创 2021-07-27 22:34:05 · 296 阅读 · 1 评论 -
2021-7-27 汇编语言 程序:驱动万物的伟力
终于聊完了 CPU 的寄存器部分,不禁长舒一口气,今天我们来到程序的部分。程序,相信大家在学完 C 和 C++后应该不陌生了。(不会有人将汇编作为第一们语言学吧?)如此,程序如何从源文件(source)变成可执行文件(.exe),这里不再赘述。我们直接来看一段完整的汇编语言源程序:assume cs:codesgcodesg segmentmov ax,0123Hmov bx,0456Hadd ax,bxadd ax,axmov ax,4c00Hint 21Hcodesg en原创 2021-07-27 19:20:52 · 278 阅读 · 0 评论 -
2021-7-26 汇编语言 高屋建瓴:栈,段的理解(炉边小坐)
聊了那么多,是时候简短的总结一下栈和段。栈的综述8086CPU提供了栈操作机制,方案如下。1、在SS、SP中存放栈顶的段地址和偏移地址;2、8086提供入栈和出栈指令,它们根据SS:SP指示的地址,按照栈的方式访问内存单元。3、push指令的执行步骤:①SP=SP-2;②向SS:SP指向的字单元中送入数据。4、pop指令的执行步骤:①从SS:SP指向的字单元中读取数据;②SP=SP+2。5、任意时刻,SS:SP指向栈顶元素。6、8086CPU只记录栈顶,栈空间的大小我们..原创 2021-07-26 22:08:32 · 539 阅读 · 0 评论 -
2021-7-26 汇编语言 寄存器(内存访问)补充(炉边小坐)关键词:栈顶超界,push pop指令,栈顶
最近炉边小坐的篇幅真是越来越巨大,这个栏目的本意是写一些 1K 左右的小短文,没想到后来越来越长,为此我在改进写作方法,力求压缩篇幅,浓缩精华,欢迎各位指正。现在尝试加入关键词和目录制度,看是否能增强可读性。栈顶超界问题8086CPU 用 SS:SP指示栈顶位置,并提供 push 与 pop 指令实现入、出栈。同时,我们也知道栈空间是有限的,例如我将 10000H~1000FH 这一段空间作为栈使用,则栈区的空间为8 个字型数据(即 16 个 byte),我们如何知道栈顶会不会超出栈空间?毕竟 S.原创 2021-07-26 20:34:06 · 885 阅读 · 0 评论 -
2021-7-24~25 汇编语言 寄存器(内存访问)-办事大厅指南【完成版】(炉边小坐)
上文,我们主要从CPU 执行指令的角度聊寄存器,我们这次深入寄存器的内存,从内存的角度再理解寄存器。我们介绍过,在(8086)CPU 内,我们用16bit 寄存器存储一个“字”,即字型数据,低 8 位存放低位数据,高 8 位存放高位数据,注意,低位字节排在高位字节前(从栈的角度而言,低位字节较为接近栈顶),总结一下,字单元的概念就是:存放一个 16bit 数据的内存单元(有两块地址连续的 8bit 地址单元组成,为什么这样设计上期有叙),而高低字节是可以转化的,并非定死的,这个后文再述,以后,我们将起始原创 2021-07-24 22:28:37 · 524 阅读 · 0 评论 -
2021-7-22~23 汇编语言 寄存器-CPU 的办事大厅【完成版】(炉边小坐)
一个 CPU 由运算器、控制器和寄存器组成,这些器件通过(内部)总线连接,在 CPU 中,运算器进行信息处理,寄存器实现信息储存,控制器控制各器件工作,而内部总线在其中传递信息,串联起三大元器件。对于一个程序员来说,CPU 的主要部分是寄存器,这是程序员可以通过指令来读写的部件。不同的 CPU 寄存器个数也不同。现在主流寄存器是 32bit 的,8086CPU 寄存器是 16bit 的,AX,BX,CX,DX,这四个寄存器用于存放一般数据,被称为通用寄存器。以 8086CPU 的寄存器为例,一个寄.原创 2021-07-22 22:22:31 · 250 阅读 · 0 评论 -
2021-7-22 汇编语言 开篇:关于计算机(炉边小坐)
古语有云:“近水楼台先得月”。这句话用来形容汇编语言最好不过。汇编语言是直接在硬件之上工作的语言,我们知道无论多么精巧绝伦的语言,最后都要通过编译器转变成机器语言才能让计算机理解并执行。在前面的文章,无论是 C语言,这类比较于接近低级语言的高级语言,亦或是更高级的 C++(当然只学了一半),我们对计算机硬件的探讨都比较浅显,就算是前四天对指针讨论——最接近硬件的部分,对计算机的硬件都是点染略过,但是学习汇编语言,这种更为接近计算机硬件,或者是本质的东西,了解硬件知识是必须的,当然,也没有到要...原创 2021-07-22 20:12:07 · 246 阅读 · 0 评论 -
2021-7-21 指针:强大而危险的灵魂【C++指针的应用---下】(炉边小坐)
最后一天,聊聊关于指针自身的东西,在开始之前,我们再来明晰一次指针的属性:指针是一个储存地址的变量。指针数组1、指针数组今天来引入一个新概念——指针数组。当数组的每一个元素都是指针的时候,就变成了指针数组:char*SZname[]={"Fortran", "C", "C++"};这个数组具有变量的性质,可以是静态的,全局的或者是局部的,指针数组具有类型,其存放的一定是和他类型相同的指针,(每个元素都存放在 data 区的原创 2021-07-21 23:14:15 · 274 阅读 · 1 评论 -
2021-7-20 指针:强大而危险的灵魂【C++指针的应用---中下】(炉边小坐)
终于来到第三天,今天我们来聊聊其他类型的指针,我尝试使用章节来叙述,增强可读性.const 型指针1、const 型指针聊到指针,我们下意识的认为指针所指向的数据是“变量”,这是因为我们常常会混淆“指针变量”和“指针所指的数据”这两个概念。指针大多数时刻指向的是变量,但有时指针也会指向常量,定义指向常量的指针需要在定义语句的指针类型前加上 const,表示指向的对象是常量。const int a=78;const int b=28;下面有两种常见错误,分别对应着一种概念难点:原创 2021-07-20 22:46:13 · 286 阅读 · 2 评论 -
2021-7-19 指针:强大而危险的灵魂【C++指针的应用---中上】(炉边小坐)
指针是一个变量,我们反复强调这个概念,因为它真的很重要.既然是变量,那应该就可以参与运算,而指针变量较为复杂,它只参与+和-运算,事实上,指针变量可以参与自增自减运算,但是指针常量/const 型指针无法参加自增自减运算,但const*int (iP++)是允许的,关于 const 型我们后文详细讲解.尤其要注意的是,虽然数组名是一个指针,但他却是个指针常量,对于数组名不能运用自加自减运算符,虽然 *(Name++)是可实现的,但是明显 Name[ ]会效率更高.而且不要妄图给数组名赋值,原因请看上篇...原创 2021-07-19 22:28:20 · 199 阅读 · 4 评论 -
2021-7-18 指针:强大而危险的灵魂【C++指针的应用---上】(炉边小坐)[19 日修改版]
对于指针,如果你不熟练,在某些情况下,最好去掉它。嗯,让派蒙回归应急食品。——在提瓦特学C语言 第一章 旅途的起点:风起地——初识C语言我在写关于C语言冒险的文章的时候,曾经提及过指针。指针(pointer),被誉为C/C++语言的灵魂。它可以通过指针获得变量的地址以及操纵地址,这是其他语言所缺乏的,强大的对硬件的操控力。很好,吹逼吹完了,那指针到底是什么?指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进...原创 2021-07-18 22:24:05 · 206 阅读 · 0 评论 -
2021-7-17 有数组,必排序(炉边小坐)
关于数组,我想直接套用我的一篇文章的内容:一维数组定义方式:数据类型符 数组变量名[整型常量];数组定义时,必须指定数组的大小(长度),大小必须是整型常量,不能是变量或变量表达式。 数组定义后,系统将给其分配一定大小的内存单元。数组所占内存单元= 数组大小 × sizeof(元素类型)short int a[20]; 则数组a所占内存单元的大小为:20 * sizeof(short) = 20 * 2 = 40(字节)。 占用内存中连续的存储单元,其中第一个数组元素的地址是数组的首..原创 2021-07-17 22:04:36 · 267 阅读 · 0 评论 -
2021-7-15 从“栈”的角度看程序安排(炉边小坐)
“栈”,一种数据结构,一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。进行数据操作的这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作入栈或压入(PUSH),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(POP),它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。顾名而思义,栈,在汉字里指的是存储货物或供旅客住宿的地方,所以栈一字引入到计算机领域里,就是为了表示数据暂时存储的地方,所以才有进栈、出栈的说法。你也可以理解成往手枪原创 2021-07-15 22:31:59 · 149 阅读 · 0 评论 -
2021-7-14 从I/O流控制再理解“流”一字(炉边小坐)
昨天和前天聊到了I/O流及其体现的C++的面向对象编程的特性,今天继续补充相关的内容,关于“流”的控制。众所周知,我们可以将“流”比作现实世界的河流来理解,事实上,数据就像河里的水,沿着不同的河道汇入“流”,又从“流”去到不同的目标地点。而数据在进入“流”这条主干道之前,是可以被控制的,类型,显示方式,内容等等,这就是对“流”的控制。但注意,使用I/O流控制符要记得把头文件#include<iomanip>包含进来在《C++程序设计基础》一书中,常见的控制符主要出现在数据进入“流”前和进原创 2021-07-14 21:53:39 · 210 阅读 · 0 评论 -
2021-7-13 C和C++中I/O流中体现各自的语言性格(炉边小坐)
看《C Primer Plus》讲到I/O流的时候其实不太理解“流”的含义。在C++里面,“流”的含义十分明显,输出的数据用“<<”来链接,且cout不区分数据类型,较于C语言scanf中繁复的数据类型表示符以及各种针对不同数据类型的I/O函数,C++的Out更符合“流”这个概念,就像黄河,无论重石还是泥沙,一并在滔滔江水里冲涌(输出)。妙啊。...原创 2021-07-13 13:16:10 · 124 阅读 · 0 评论 -
2021-7-11 关于调试程序(炉边小坐)
读到《C Primer Plus》2.7.3程序状态一章时,发现以前没有摸透IDE时,使用的人肉debugger——在程序关键点/疑似错误点插入printf()以观察某个/某几个变量的变化情况,通过查看变量值的情况就可以了解程序的运行情况,然后调试完后删除printf()。但是在学完函数后,我发现函数内的局部变量很难通过主函数内的printf()来监测,而在函数里插入printf又有可能使输出框非常难看(尤其是在调用数十次上百次具有返回值的函数时,测试值会和函数运行结果混淆)。这时,调试器(debugg原创 2021-07-11 21:39:10 · 123 阅读 · 0 评论