10 zhiwensun

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 11w+

KMP算法详解

字符串查找子串是计算机程序设计经常会遇到的难题。举个例子来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?    完成这个任务有很多算法,KMP是最常用的算法之一,下面通过一个例子来详细描述一下这个算法:1.    首先将子串与搜索串的第一个字符进行比较,因为不匹配,所以将子串向后移动直到2.

2015-08-07 21:35:36

CRC循环冗余校验码

环冗余校验码     在串行传送(磁盘、通讯)中,广泛采用循环冗余校验码(CRC)。CRC也是给信息码加上几位校验码,以增加整个编码系统的码距和查错纠错能力。CRC的理论很复杂,一般书上只介绍已有生成多项式后计算校验码的方法。检错能力与生成多项式有关,只能根据书上的结论死记。     循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码

2015-07-30 21:14:31

检错码之海明码

海明码(Hamming Code)是一个可以有多个校验位,具有检测并纠正一位错误代码的纠错码,所以它也仅用于信道特性比较好的环境中,如以太局域网中,因为如果信道特性不好的情况下,出现的错误通常不是一位。 海明码的检错、纠错基本思想是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就

2015-07-30 20:05:45

C与C++的区别与相互调用

一:两者的区别从语言本身的角度:全面兼容C语言;支持面向对象编程;C++的可重用性、可扩充性以及可维护性较好。是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过

2015-07-30 09:18:07

Linux内存管理

X86下,Linux虚拟地址空间分为0-3G的用户空间和3G-4G的内核空间,其中用户空间的地址映射采用多级页表机制,而内核态空间采用线性偏移量(0Xc0000000)。内核空间分为三部分,其中,ZONE_DMA为开始的16M,ZONE_NORMAL为16-896M,ZONE_HIGH_MEM为896M-1G。

2015-07-14 20:44:21

磁盘管理之逻辑卷管理(Logical Volume Manager)

LVM的基本简介

2015-01-18 15:36:25

每天一个linux命令4-tar

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。首先要弄清两个概念:打包和压缩。打包是指将

2015-01-13 15:22:18

每天一个linux命令3-more

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。1.命令格式:more [-dlfpcsu ] [-num ] [+/ p

2015-01-12 15:26:03

每天一个Linux命令2-sort

linux sort 命令详解sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbanan

2015-01-12 15:19:34

每天一个Linux命令1-wc

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。1.命令格式:wc [选项]文件...2.命令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。3.命令参数:

2015-01-12 11:22:35

DRAM内存原理(五)内存管理单元MMU

0、前言  CPU和内存之间有三根总线,地址,数据,和控制总线。这是在说地址之间的问题。cpu和内存之间用地址来查找数据,但是两者的地址并不总是一样的,cpu产生的是逻辑地址,而内存的就是物理地址。通常都是不一样的,所以需要地址映射。正好是从编程人员的角度看,(不考虑解释执行)程序总是经过源程序编译,连接,运行三个阶段。在这个过程中,指令和数据就要调到内存。地址捆绑的三种形式:编译时:

2014-12-12 22:57:19

DRAM内存原理(四)同步内存和异步内存技术

现在你已经掌握了内存的基本知识,所以你应该能理解下面讲述的为什么BX芯片组的主板超频到133 MHz性能会比别的比如VIA Apollo 133等芯片组好;为什么133外频的KX133并不比100外频的AMD750芯片组有明显的性能提高。因为BX/AMD750芯片组运行在同系统FSB同样的时钟频率下,而VIA芯片组是异步的,因为它可以支持PC66、PC100、PC133 SDRAM。我们来

2014-12-08 09:41:13

DRAM内存原理(三)带宽问题

要理解延迟时间和带宽之间的联系,我们以PC100 SDRAM-222为例来说明。第一个2代表CAS延迟时间是2个时钟周期,第二个2表示RAS到CAS延迟时间,第三个2代表预转换时间。我们假设不同类型的延迟。在这个例子中我们假设发生了缓存页面失效,CPU等待调入新的需要的数据。也就是,我们要研究从读取内存到填充缓存的这一个过程。回写内存的过程很简单。写入的数据可以首先调入缓存待用。举例来说,KX-1

2014-12-08 09:31:03

DRAM内存原理(二)结构和功能

内存最基本的单位是内存“细胞”——也就是我们前面展示给大家DRAM基本单元示意图所示的部分,下面我们对这个部分通称为DRAM基本单元。每个DRAM基本单元代表一个“位”——Bit(也就是一个比特),并且有一个由列地址和行地址定义的唯一地址。8个比特组成一个字节,它可代表256种组合(即2的八次幂),字节是内存中最小的可寻址单元。DRAM基本单元不能被单独寻址——否则现在的内存将会更加复杂,而且也没

2014-12-08 09:03:22

DRAM内存原理(一)内存基础

DRAM 即动态内存,其基本单位是由一个晶体管和一个电容器组成。请看下图: 图只是DRAM一个基本单位的结构示意图:电容器的状态决定了这个DRAM单位的逻辑状态是1还是0,但是电容的被利用的这个特性也是它的缺点。一个电容器可以存储一定量的电子或者是电荷。一个充电的电容器在数字电子中被认为是逻辑上的1,而“空”的电容器则是0。电容器不能持久的保持储存的电荷,所以内存需要不断定时刷新,才能

2014-12-08 08:38:49

一天掌握HTML

一,基础入门

2014-05-24 20:34:37

Linux学习之socket编程

int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); /*参数列表int maxfdp是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1,不能错!在Windows中这个参数的值无所谓,可以设置不正确。   fd_s

2014-04-13 20:05:56

GoAhead学习之GoForms

GoAhead WebServer 提供一个标准的普通网管接口作为内存表格处理,我们称之为GoForms.。老版本的CGI处理会导致在对于每一个CGIURL的请求产生一个新的进程。因为CGI通常作为执行用户输入的首要方式,同时它也是缓慢和额繁琐的。嵌入式系统需要一个结构紧凑高性能的的解决方案,而GoForms 就是一个最佳选择。

2014-04-12 21:48:08

Linux学习之Makefile和Configure文件说明

一、概述和基础知识  在Linux下得到一个以源代码形式发布的包(一般为.tar.gz或.tar.bz2格式),我们可以用 ./confiugure、make、make install来编译安装,其中在运行./configure的时候还可以根据自己的需要加入不同的参数(可用./configure --help来查看参数表)。  先说说执行./configure后会生成什么东西?运行

2014-04-11 21:58:57

C语言学习之main函数解析

argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     命令行后面跟的用户输入的参数,比如:     int   main(int   argc,   char*   argv[])     {     int   i;     for   (i   =   0;   i  i++)     cout   

2014-04-11 09:56:48

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!