- 博客(9)
- 收藏
- 关注
原创 BMP基础
BMP是比较常见的使用RGB模式的文件格式,BMP全称Bitmap-File,是微软出的图像文件格式。BMP 格式 由以下部分组成。BMP文件是由BITMAPFILEHEADER、BITMAPINFOHEADER、RGB像素数据共3个部分构成,它的结构如下图所示。
2023-11-02 11:52:19
134
原创 策略模式
定义:定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。Strategy及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换;Strategy模式提供了用条件判断语句以外的另一种选择,消除条件判断语句,就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式。如果Strategy对象没有实例变量,那么各个上下文可以共享一个Strategy对象,从而
2020-10-31 15:22:48
172
原创 设计原则
1. 单一职责原则(SRP: The Single Responsibility Principle)一个类应该仅有一个引起它变化的原因;变化的方向隐含着类的责任。2. 开放-封闭原则(OCP: The Open Closed Principle)open——模块的行为必须是开放的、支持扩展的,而不是僵化的。closed——在对模块的功能进行扩展时,不应该影响或大规模影响已有的程序模块。一句话概括:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。核心思想就是对抽象编程,而不对具
2020-10-31 09:53:37
88
原创 状态模式
状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。它将一群行为封装在状态对象中,context的行为随时可委托到那些状态对象中的一个。随着时间的流逝,当前状态在状态对象中游走改变,以反映出context内部的状态,因此context的行为也会跟着改变。但是context的客户对于状态对象了解不多,甚至是浑然不觉。 状态模式类图如下所示:Context(上下文)是一个类,它可以拥有一些内部状态。不管什么时候,只要有人调用Context的request()方法,它就会被委托
2020-10-25 16:22:52
211
原创 【深入理解计算机系统】IEEE浮点表示
一、基本表示 在IEEE标准中,一个浮点数表示如下:V=(−1)s×M×2EV=(-1)^s\times M\times 2^EV=(−1)s×M×2E其中:s表示符号(sign),s=1表示负数,s=0表示正数;M表示尾数(significand);E表示阶码(exponent)。 在单精度浮点格式中,符号位、阶码和尾数的位数分别为1、8、23;在双精度浮点数中,符号位、阶码和尾数的位数分别为1、11、52。二、三种情况1.规格化值 当阶码的编码不全为0且不全为1时,该浮点数
2020-07-07 10:24:46
788
原创 【深入理解计算机系统】虚拟地址空间
虚拟地址空间由大量准确定义的区构成,每个区都有专门的功能,这些区又分为两大部分:内核空间和用户空间。虚拟地址空间的构成如下图所示:程序代码和数据:对所有进程来说,代码是从同一固定地址开始的,紧接着的是和全局变量相对应的数据位置。代码和数据区是按照可执行目标文件的内容初始化的。堆:代码和数据区后是运行时堆。当使用malloc和free这样的C标准库时,堆可以在运行时动态地扩展和收缩。共享库:大约在地址空间的中间部分是一块用来存放像C标准库函数和数学库这样的共享库的代码和数据的区域。栈:位于虚拟
2020-06-21 15:32:33
534
原创 【深入理解计算机系统】C语言编译过程
C语言的编译过程分为四个阶段:预处理、编译、汇编链接,其过程如下图所示,其中hello.c是一个输出字符串“hello world”的C程序。预处理阶段:预处理器(cpp)根据以字符#开头的命令,修改原始的C程序,得到一个新的C程序,保存为预编译文件,以.i作为文件扩展名。编译阶段:编译器(ccl)将预编译文件转换成汇编语言程序,保存为汇编文件,文件扩展名为.s。汇编阶段:汇编器(as)将汇编文件转换为机器码,生成可重定位目标文件,文件扩展名为.o,这是一个二进制文件。链接阶段:链接器(ld
2020-06-20 11:02:02
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人