自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络:Socket编程

SocketSocket,即套接字,可用于网络中两个不同主机上的进程间通信最早由 BSD 实现,后来Unix、Linux、Win等均有拓展先看一下 Socket 编程在计算机网络中所处的位置...

2020-05-01 23:22:19 686

原创 计算机网络:计算机网络体系结构与OSI参考模型、TCP/IP参考模型、五层参考模型

计算机网络体系结构当前计算机网络主要以分层结构来看待,从功能上进行描述每一层依赖底层提供的服务完成一种特定的服务/功能遵循一定的协议、通过层内动作完成本层的功能,并以此向上一层提供服务即 计算机网络体系结构是计算机网络的各层及其协议的集合,是对计算机网络功能层次及其关系的描述(每层遵循哪些协议、完成哪些功能,各层之间的关系)计算机网络体系结构是抽象的,不关心具体实现方式分层结构有...

2020-04-25 19:47:40 5047 1

原创 计算机网络:性能指标

文章目录评价计算机网络性能的指标速率 / 数据率(data rate) / 数据传输速率 / 比特率 (bit rate)带宽延迟(delay) / 时延(latency)时延带宽积 / 信道容量丢包率吞吐量/率(throughput)评价计算机网络性能的指标以下术语均处于计算机网络语境下速率 / 数据率(data rate) / 数据传输速率 / 比特率 (bit rate)单位时...

2020-04-22 14:21:50 2494 1

原创 计算机网络:数据交换的三种方式及其比较

网络核心主要解决的问题是数据如何从源主机通过网络核心到达目标主机,

2020-04-22 12:13:12 17562

原创 计算机网络:多路复用技术

多路复用(multiplexing)简称复用,是通信技术中的基本概念主要思想:将链路/网络资源划分为"资源片",将资源片分配给各路"呼叫"(calls)每路呼叫独占分配到的资源片进行通信。这个过程中,资源片可能闲置。典型的多路复用方法:频分多路复用(Frequency Division Multiplexing,FDM)时分多路复用(Time Division Multiplexi...

2020-04-21 11:54:18 2300

原创 计算机网络:基础概念

基础概念什么是计算机网络计算机网络是通信技术与计算机技术紧密结合的产物。是一种通信网络。通信系统模型:计算机网络的定义:计算机网络是互连的、自治的计算机集合。互连:通过通信链路互联互通自治:无主从关系交换网络当计算机网络的规模越来越庞大,使用直接的连接是不合适的因此通过交换网络互连主机,即主机连接交换节点(路由器/交换机),通过交换结点传送数据...

2020-04-19 00:35:17 1854

原创 C++:类与类中的函数

C++特性的C实现C++ 在 C with class 时期,C++ 的实现是先将 C++ 程序翻译为 C 程序,然后使用 C 编译器进行编译从其中我们可以窥见一些细节甚至可以用 C 提供的基本特性来实现面向对象特性 例子this 指针this 指针就是下面 C 函数中的指针 C,即 this 指针指向的就是调用该成员函数的对象this 是一个指针常量 (const of poin...

2020-01-19 16:07:38 1420

原创 准备学习C++

开始学习C++最好的时间是十年前,其次是现在纯粹是对这门号称混合了多种编程范式的语言产生的兴趣大过了语言本身设计糟糕程度的厌恶希望C++真的那么强大2019/7/25...

2020-01-18 15:43:47 223 3

原创 C++:构造函数与析构函数

构造函数类的对象都是由构造函数产生的同 Java 一样,若类未定义构造函数,则会产生默认构造函数(无参构造函数)class complex{ private: double real, image; public: complex(){} complex(double r){ real = r; image = 0; } complex(double r, double ...

2020-01-17 01:05:46 190

原创 C++:相对于C的C++基本特性

从C到C++本文介绍从C语言过渡到C++的一些基本语法或特性C++与C是两种语言,C++没有完全兼容C,所有C代码在 cpp 文件中表示的是另外一种含义,只是表现得符合C的行为在 cpp 中只有显式使用 extern C { } 说明时,compiler 才把代码作为C处理引用int a = 3;int & b = a;//创建a的引用上面两行代码创建了变量 a 的引用...

2020-01-14 17:07:31 595

原创 操作系统:内存使用与分段

内存的使用方式以及问题程序如何存放在内存中内存作为计算机的基本组成部分,用来存储程序(指令和数据)内存单元按字节编址、寻址,程序装入到内存后,PC 指向程序开始地址,依次取指执行对于多个存在于内存中的程序,它们在同一时刻必须占用不同的内存指令的标号即是该条指令在程序起止位置中的偏移,是一种数字量表示的逻辑地址(相对地址,相对于程序开始位置)_main1: _main2: ...

2020-01-07 20:05:14 226

原创 结构体、位域、栈的字节对齐

为什么要字节对齐可移植性:不是所有硬件都能从任意地址开始访问数据,如 MIPS 遇到未对齐内存直接报错效率:CPU 每次读取内存时是一块一块读取的,如果目标数据跨越了两个块,CPU 要把两个块都读进来,去掉无关字节,然后将两个块中的目标数据拼接起来,大大降低了 CPU 的效率结构体/联合体中的字节对齐结构体内的第一个成员的偏移量为0,此后每个成员的偏移量为 min(#pargma pac...

2019-12-22 17:35:50 640

原创 x86函数调用过程与栈帧

x86函数调用过程与栈帧x86与x86-64在函数调用约定上有相当的不同,因此分开来讲栈帧(stack frame)先说一下栈帧的概念函数每次被调用时,要在调用栈(call stack)上占用一段空间在需要时保存调用者使用的寄存器值,保存本函数的局部变量、参数、返回地址等,并且在函数结束后回到调用者的占用的空间与代码位置继续执行,函数运行阶段在调用栈上占用的这段空间就叫做栈帧,是编译...

2019-12-20 23:28:53 2782 2

原创 操作系统:进程与线程

进程的概念为什么会有进程?操作系统的设计目标之一是充分利用硬件资源,当有程序处于阻塞状态(如正在 I/O)时,CPU是闲下来的自然而然地可以想到,为什么不让 CPU 先执行另一个程序等到这个程序 I/O 结束,再继续执行这个阻塞的程序呢?另一方面,多用户操作系统使得计算机要能在不同用户执行的程序中来回切换即管理 CPU 的方式应该是多道程序、交替执行(并发)顺序执行一个程序,只需要置好...

2019-12-20 01:16:00 118

原创 操作系统:系统调用的实现

内核态与用户态、内核段与用户段内核态与用户态是保护模式下的概念内核态:具有较高特权,可以访问所有寄存器和存储区,执行所有指令;OS一般运行在内核态用户态:较低权限的执行状态,仅能执行规定的指令(如不能随意 jmp ),访问指定的寄存器,应用程序一般只能在用户态运行计算机中用两个 bit 来表示四种特权状态,硬件将 0 作为内核态,3 作为用户态,Windows 与 Linux 均只使用两个...

2019-12-15 23:13:31 2049

原创 操作系统:操作系统启动过程

冯诺依曼体系的计算机的工作原理就是:取指令、执行指令下面以 x86 架构为例介绍操作系统的启动过程x86架构下操作系统启动过程对于 x86 架构 Linux 0.11 来说,操作系统启动主要执行了以下几段代码BIOS → bootsect.s → setup.s → head.s → main.cBIOS部分x86 PC 刚开机时 CPU 处于实模式,寻址方式为计算逻辑地址 CS ...

2019-12-07 15:40:55 1053

原创 C stdarg.h:可变参数va_list、va_arg等宏的使用及原理简介

va_list、va_arg宏及 …的使用va_list 可变参数宏,同标识符…相同,用于传递可变参数当函数需要传递的参数个数不能确定时,如 printf,使用…声明接下来的多个参数,在函数实现中使用va_list、va_arg等宏取出参数使用具体使用方法如下void func(type first_arg, ...){ va_list argptr;//声明参数列表指针 va_st...

2019-12-07 12:42:04 1043

原创 静态、动态链接库的生成及使用

Linux下静态链接库的生成实际上,.o文件即是用于链接的目标文件了,gcc/clang -c xxx.c得到目标文件xxx.o多个.o文件可以使用 ar (archive) 命令打包为静态库.a文件,其命名规范为libxxx.a,其中xxx为库的名字//将yyy.o添加至静态库libxxx.a中ar -r libxxx.a yyy.o//从libxxx.a中移除yyy.oa...

2019-11-19 18:25:38 457 1

原创 notfastjson项目介绍

notfastjson© 2019 kafm (wdxdesperado@qq.com)简介简单 不是很快的 JSON解析库 C语言实现ANSI C标准,跨平台 / 编译器递归下降解析器支持UTF-8字符number类型数字解析仅支持C语言double类型范围参考 从零开始的 JSON 库教程 @ Milo Yip构建原项目Win平台下使用VS编写,使用<crtdbg...

2019-11-17 12:00:37 189

原创 The ANSI C Programming Language:C语言预处理机制

2019/10/07

2019-10-07 14:55:10 249

原创 语法分析:LL(1)语法分析的实现及扩展的巴科斯范式

终于港到实现。。LL(1)语法与LL(1)分析当一个文法满足以下条件时,称这个语法为LL(1)语法,LL(1)语法可以通过LL(1)的分析方法进行分析文法不含有左递归同一非终结符的FIRST集合两两不相交同一非终结符的FIRST集若包含 ε,则不能与FOLLOW集相交LL(1)分析:若当前待匹配符号属于当前非终结符的某个产生式的候选首符集中,则将该非终结符按此产生式推导若当...

2019-08-13 21:42:06 1491

原创 语法分析:LL(1)分析

本篇介绍的LL(1)分析,这是一种自上而下分析的方法关于语法描述的概念自上而下分析从文法的开始符号出发,向下推导。推出句子根据输入串,从文法开始符号(根结点)出发,自上而下地为输入串建立语法树eg:有语法:S → xAy  A → ** | *从左向右扫描输入串,取到 x 进行匹配时,分析文法开始符号 S 的产生式,只有一个 S → xAy,那么只能将 S 推导为句型 xAy...

2019-08-11 21:07:04 17462 2

原创 计算机系统基础:计算机系统概述

这是一个 CSAPP-like 的系列博客通用电子计算机历史第一台通用电子计算机是宾夕法尼亚大学于1946年研制的ENIAC,它采用十进制,是可编程、图灵完备的电子计算机。随后,Von Neumann 加入ENIAC的研制组,进行新的 “存储程序式通用电子计算机” EDVAC的研制,为此冯诺依曼以"关于EDVAC的报告草案"为题发表了全新的"存储程序式通用电子计算机方案",在该方案中,...

2019-08-09 23:38:19 2396

原创 计算机系统基础:数据的表示和存储

数据的表示和存储信息的二进制编码数据: 数值数据:无符号整数、有符号整数;浮点数;(可以在数轴上表示出来,可比较大小的) 非数值数据:逻辑数(包括01序列),字符等 计算机内部所有信息都使用二进制进行编码,原因:具有两个稳定态的物理器件容易制造(电位高/低,脉冲有/无,正/负极,表示1和0)二进制编码,计数,运算规则简单,也易于电路实现与逻辑值真/假对应,便于逻辑运算易使用...

2019-08-02 09:04:00 4692

原创 词法分析(五):正规式与有限自动机

词法分析概述唉,不想学习,老是想起别的事情这篇博客讲的是正规式和有限自动机的等价性,为NFA写出等价的正规式,为一个正规式构造等价的NFA有了NFA与正规式的关系,就把正规式和前面所述串接起来了总而言之,状态图,正规式/正规集,有限自动机都是同种东西的不同形式正规集是实在存在的编程语言的单词集合,正规式是单词集合的抽象描述,计算机难以理解正规式,或者说正规式的概念难以映射到计算机...

2019-07-24 20:03:02 5663 1

原创 词法分析(四):DFA的化简

词法分析概述虽然本篇博客冠名以词法分析,但是DFA的化简对于词法分析来说不是必要的它仅仅是自动机理论的一部分,甚至,你不需要自动机理论,也可以手打出来一个Tokenizer但是自动机理论是词法分析器的自动产生工具的理论自动化并且简化要不然何以称之为屠龙之术?(虽然前端技术可能只是屠龙术的起式 )(词法分析的理论我都看了有一周了,还没着手实现,好tm难 )DFA的化简(最小化)D...

2019-07-23 15:01:37 4410

原创 词法分析(三):有限自动机DFA与NFA

词法分析概述有限自动机(FA)有限自动机是对状态图的形式化描述也就是说,有限自动机可以等价地表示为状态图,一个状态图也可以表示成等价的FA有限自动机(Finite Automata)即FA有限自动机分为:  确定有限自动机(Deterministic Finite Automata)  非确定有限自动机(Nondeterministic Finite Automata)确定有限...

2019-07-23 00:36:43 16397

原创 词法分析(二):词法规则的形式化——正规式与正规集

语法描述的基本概念复习一下以下概念:字母表:一个有穷字符集,记为Σ字母表中的每个元素称为字符Σ上的字(字符串):由Σ中的字符构成的一个有穷序列不包含任何字符的序列称为空字,记为εΣ*表示Σ上所有字的全体,包含空字ε例:设Σ={ a,b },则Σ* = { ε,a,b,aa,ab,bb,ba,aaa,…}若U、V为Σ*的两个子集,则U和V的连接(积)定义为UV = { αβ | ...

2019-07-20 20:50:21 8362

原创 词法分析(一):状态转换图

状态转换图状态转换图是一张有限有向图结点表示状态,结点用圆圈表示状态之间存在有向弧,弧上标记有字符或字符集,表示某一状态接受箭弧上的字符/字符集输入后到达另一状态一张状态转换图中的状态个数是有限的,其中有一个初态,至少有一个终态如上图表示状态1为初态,状态3为终态,状态1接受字符a到达状态2,接受数字到达状态3终态用双圈表示状态转换图可用于识别 / 接受一定的字符串若存在...

2019-07-20 15:30:07 38275 4

原创 编译原理:词法分析概述

//放暑假了,大三了。开学就要学编译原理、微机原理、操作系统三门大课qnq//true true beginning词法分析概述首先搞清楚词法分析在编译程序中的位置以及作用:源程序 经过词法分析 得到单词符号(包括单词符号的种别,是标识符啦,还是数据啦,还是括号或者操作符…),分析出的单词符号供语法分析器进一步处理词法分析由词法分析器(Lexical Analyzer)完成,...

2019-07-19 17:14:07 1434

原创 JavaScript:异步操作与回调简析

提到异步操作与回调,重要的应用便是在网络请求中的应用了解异步操作与回调,可以为网络请求做准备回调当执行一个耗时操作或者等待某些触发性事件时,我们得保证耗时操作完成或者事件触发后才能进行下一步动作,这就是回调的应用场景(MDN文档居然说回调过时了QAQ)截图为证一个经典的例子便是监听器var action = function(){}btn.addEventListener("cl...

2019-06-02 22:38:48 169

原创 JavaScript:定时任务的简单使用

定时和时间间隔异步setTimeout( ) 在指定的时间后运行一段代码setInterval( ) 以固定的时间间隔,重复运行一段代码requestAnimationFrame( ) setInterval()的现代版本;在浏览器下一次重新绘制显示之前执行指定的代码块,从而允许动画在适当的帧率下运行,而不管它在什么环境中运行这些函数设置的异步代码实际上在主线程上运行,只是在运行间隔间可以...

2019-06-02 11:12:16 210

原创 JavaScript:原型机制实现的面向对象

JavaScript创建对象直接声明一个对象var person = { name: ['Bob', 'Smith'], age: 32, gender: 'male', interests: ['music', 'skiing'], bio: function() { alert(this.name[0] + ' ' + this.name[1] + ' is...

2019-05-26 22:22:50 188

原创 JavaScript:web中的简单事件处理

首先应树立一种HTML、CSS、JavaScript三者独立的观念JavaScript脚本的事件处理不要在HTML元素中以属性的方式添加事件处理<button onclick="doSomething()">Press me</button>甚至是直接写入脚本代码<button onclick="alert('Hello, this is my old-...

2019-05-18 16:09:17 334 2

原创 Web开发基础(二):CSS框模型(Box Model)、定位与浮动

CSS的决定的HTML标签特性HTML的标签,可以简单分为三类类别特性内联元素/行级元素(inline)<span> <strong> <em> <a> <del>等内容决定元素占位大小默认不可以通过CSS改变宽高块级元素(block)<div> <p> <ul> &lt...

2019-05-16 15:39:47 219

原创 Web开发基础(一):CSS基础

  看了一段时间CSS,这个东西所见即所得,没有太复杂的逻辑,很多零碎的东西没必要硬记,写的时候达到效果就可以了CSS 层叠样式表 (cascade style sheet)对于一个网页来说HTML是框架及内容,HTML表达了网页有哪些结构,内容是什么CSS规定展现样式JS负责逻辑处理CSS的使用方式行间样式在标签里规定style属性内容<div style=" w...

2019-05-14 11:59:22 146

原创 记录一个Heisenbug!

记录一个错误的正确!!!我觉得归功于编译器我要学编译原理!!!问题是这样的传送门:https://www.luogu.org/problemnew/show/P4009给定一个 N \times NN×N 的方形网格,设其左上角为起点◎,坐标(1,1)(1,1),XX 轴向右为正, YY 轴向下为正,每个方格边长为 1。一辆汽车从起点◎出发驶向右下角终点▲,其坐标为 (N,N)(N...

2019-04-23 22:43:28 261

原创 MATLAB(一):矩阵基本操作

MATLAB面向矩阵!MATLAB面向矩阵!MATLAB面向矩阵!一些特殊矩阵通用性特殊矩阵   如零矩阵,幺矩阵,单位矩阵等用于专门学科的特殊矩阵   如魔方矩阵,范德蒙矩阵,希尔伯特矩阵等等通用的特殊矩阵zeros函数 :产生全0矩阵,即零矩阵ones函数 :产生全1矩阵,即幺矩阵eye函数   :产生对角线为1的矩阵,当矩阵是方阵时,得到一个单位矩阵rand函数  ...

2019-04-18 22:47:54 984

原创 MATLAB基础(三):MATLAB基本运算与字符串处理

MATLAB基本运算MATLAB面向矩阵!MATLAB面向矩阵!MATLAB面向矩阵!MATLAB提供矩阵意义下算术运算关系运算逻辑运算当然也有针对矩阵元素的运算,单个数据的算术运算只是矩阵运算的一种特例算术运算加 + 、减 - 、乘 × 、除 \ (左除) / (右除) 、乘方 ^加减运算要求两矩阵同型,即维数、大小相同标量与矩阵进行加减运算时,把标量与矩阵的每一...

2019-04-17 09:37:00 4809

原创 MATLAB基础(二):变量与矩阵

MATLAB中的变量预定义变量预定义变量是系统本身定义的变量ans表示默认赋值变量,若输入计算表达式而未将运算结果赋值,自动赋值给ansi 和 j 表示虚数单位pi代表圆周率NaN代表非数值(在画图时,将某部分图形的坐标数据赋值为NaN即可裁掉该部分)避免对预定义变量直接进行赋值变量的管理①在工作区中可以方便的修改、删除变量②who命令与whos命令>> clea...

2019-04-16 21:20:12 10832

空空如也

空空如也

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

TA关注的人

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