自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TODD911的专栏

夯实基础,循序渐进

  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 《数据通信与网络》笔记--对数据链路层的一点疑问

ARQ是Automatic Repeat reQquest,即自动请求重传。之前写过一篇介绍数据链路层的3种ARQ的文章,有兴趣的朋友可以参考:http://blog.csdn.net/todd911/article/details/9203167。在

2013-06-30 15:32:39 2673 2

原创 《数据通信与网络》笔记--数据链路层的差错控制协议

下面介绍三个用于差错控制的协议。1.停止等待自动重复请求协议(Stop-and-Wait ARQ)下图就是停止等待自动重复请求的工作过程:图中,Sn指向将要被发送的帧的编号,Rn指向期待下一次收到的帧的编号。其中帧的编号是可以循环使用的,由编号字段的位长决定,如果编号字段为2位,则编号范围为0~3(0~2*2-1),上图中编号范围为0~1,所以编号字段为1(0~2-1)

2013-06-30 15:11:27 4817 1

原创 《数据通信与网络》笔记--数据链路层的流量控制

流量控制是数据链路层的一项重要的职能,它在接收确认前协调发送的数据数量。在大多数协议中,流量控制是一系列程序,告知发送方在等到来自接收方的确认之前它能传输多少数据,任何接收设备都有处理进入数据的速度限制和存储进入数据的容量限制。接收设备必须能够在达到这些限制前提示发送设备,并要求传输设备发送的帧少一些或者暂时停止发送。进入的数据必须进过校验和处理才能使用。这些过程通常比传输速度慢。因此,每个接

2013-06-29 15:40:13 3230

原创 《数据通信与网络》笔记--数据链路层的成帧

数据链路层需要将位组合成帧,并使帧之间是可识别的。在数据链路层中,通过添加发送放地址和接收方地址,成帧将一条从源端到目的端的报文分离开来,或者将到不同目的端的报文分离开来。目的方地址定义了分组要去的地方,而发送方地址帮助接收方确认接收。帧可以分为固定长度成帧和可变长度成帧。1.固定长度成帧不需要定义帧的边界,长度本身可以用作分隔符,这种成帧类型的一个例子就是ATM广域网,它使用称为

2013-06-29 15:17:45 3024

原创 图之图的深度优先遍历

深度优先遍历是连通图的一种遍历策略。其基本思想如下:设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的边(x,y)。若发现顶点y已访问过,则重新选择另一条从x出发的未检测过的边,否则沿边(x,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点x,并且再选择一条从x出发的

2013-06-27 13:11:35 62984 16

原创 图之图的广度优先遍历

广度优先遍历是连通图的一种遍历策略。其基本思想如下:1、从图中某个顶点V0出发,并访问此顶点;2、从V0出发,访问V0的各个未曾访问的邻接点W1,W2,…,Wk;然后,依次从W1,W2,…,Wk出发访问各自未被访问的邻接点;3、重复步骤2,直到全部顶点都被访问为止。例如下图中:1.从0开始,首先找到0的关联顶点3,42.由3出发,找到1,2;由4出发,找

2013-06-26 21:37:50 27566 3

原创 图之图的存储

关于图的基本概念,这边就不再写了。下面来说下图的存储,存储图可以使用邻接矩阵和邻接表。所谓邻接矩阵就是使用一个矩阵来存储图,下图使用矩阵来存储有向图和无向图。进行简单地说明,图G5中,V0和到V1有连线,所以坐标为(0,1)的地方为1,又因为G5是无向图,所以坐标为(1,0)的地方也为0,最后我们看到G5的存储矩阵是对角线对称的。图G6中,V4到V3有连线,所以坐标为(

2013-06-25 21:58:19 1882

转载 《c陷阱与缺陷》笔记--负数的取模运算

本文转载于:http://blog.sina.com.cn/s/blog_6f5c63ff0100tucb.html我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。truncate除法 && floor除法 在大多数编程语言中,如果整数a不是整数b的整数倍数的话,那

2013-06-23 10:51:53 1384 1

原创 《c陷阱与缺陷》笔记--注意边界值

如果要自己实现一个获取绝对值的函数,应该都没有问题,我这边也自己写了一个:void myabs(int i){ if(i>=0){ printf("%d\n",i); }else{ printf("%d\n",-i); }}但是,这个函数真的没有问题吗?如果i的值为-214

2013-06-21 21:18:44 1944

原创 《c陷阱与缺陷》笔记--移位运算

#include int main(void){ int a = 2; a >> 32; a >> -1; a << 32; a << -1; return 0;}上面代码编译时出现如下错误:yiwei.c: In function 'main':yiwei.c:5:2: warn

2013-06-21 20:11:37 6902

原创 《c陷阱与缺陷》笔记--使用errno检测错误

很多库函数,特别是那些与操作系统有关的,当执行失败时会通过一个名称为errno的外部变量,通知程序该函数调用失败。下面的代码利用这一特性进行错误处理:errno = 0;//*调用库函数*/if(errno) /*处理错误*/上面的处理是错误的。要理解这一点,我们不妨假想一下库函数fopen在调用时可能会发生什么情况,当fopen函数为要求新建一个文件以供

2013-06-19 20:37:20 1993

原创 《c陷阱与缺陷》笔记--extern

创建一个文件叫a.h,它包含了声明:extern int i;需要用到外部对象filename的每个C源代码都应该加上这样一个语句:#include “a.h”最后我们选择一个C源文件,在其中给出i的初始值,我们称这个文件为a.c#include #include "a.h"int i=8;int main(void){ printf("%d\n",i)

2013-06-19 20:25:05 1209

原创 shell获取命令的输出结果

第一种方法:#output=`echo "123"`#echo $output123第二种方法:#output=$(echo "123")#echo $output123

2013-06-14 14:13:03 14611 1

转载 使用date命令获取各种时间

本文转载于:http://www.cnblogs.com/mfryf/archive/2012/03/23/2413362.html获得当天的日期date +%Y-%m-%d输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d)有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数

2013-06-14 11:13:45 5990

转载 《c陷阱和缺陷》笔记--C编译器的注释嵌套

本文转载于:http://www.cnblogs.com/liuxiaoming/archive/2012/08/13/2636831.html某些C编译器允许嵌套注释。请写一个测试程序,要求:无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译,但是这两种情况下程序执行的结果却不同。首先,要说明的是C90只有一种注释风格,就是使用“/*”和“*/”,是没

2013-06-13 22:38:15 1561

转载 《c陷阱与缺陷》笔记--函数指针

本文转载于:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html函数指针是指向函数的指针变量,即本质是一个指针变量。 int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 指向函数的指针包含了函数的地

2013-06-13 09:18:28 1337

原创 《c陷阱与缺陷》笔记--整型常量

如果一个整型常量是以0开头的,那么这个常量被视为八进制;如果一个整型常量是以0x开头的,那么这个常量被视为16进制。#include int main(void){ int a = 0x10; int b = 010; int c = 10; printf("%d\n",a); printf("%d\n",b

2013-06-11 13:24:15 1320

原创 《数据通信与网络》笔记--网络交换技术

网络中如果有多台设备,如何才能将他们连接起来实现1对1的通信呢,一种好的解决方法就是交换技术(switching)。交换方式的分类如下:其中报文交换已逐步淘汰,今天主要讲下电路交换和分组交换。电路交换网:电路交换网是由物理链路连接的一组交换机,两个站点的连接是由一条或者多条链路组成的的专用路径,每次连接都使用链路上的一条专用通道。下图表示一个有4个交换机和4条链

2013-06-10 08:00:21 3102 2

原创 《数据通信和网络》笔记--模拟信号和数字信号

模拟信号是指信息参数在给定范围内表现为连续的信号。 或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。下图就是一种模拟信号:数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。下图是一种数字信号:数字信号其实是一

2013-06-08 20:58:43 3828 1

原创 《c和指针》笔记-简洁的二叉查找树删除node方法

之前写过一个二叉查找树,其中最麻烦的是删除元素的方法,一共分了8种情况,主要是要区分是否是根节点和非根节点,写的太烦了,详细请参见:http://blog.csdn.net/todd911/article/details/8471566今天要来简化一下这个方法,之前我还写过一篇《简洁的单项链表插入操作》,利用双指针,简化了根节点和非根节点的区别,详细请参见:http://blog.cs

2013-06-02 13:11:10 1572

原创 《c和指针》笔记--让rand更随机一点

在c语言中如果要获取1~10的随机数,那么可能大部分人的想法都是通过以下代码获取:rand()%10+1;(虽然rand生成的是一个伪随机数,但是这边姑且认为他是真随机的吧)但是生成1~10的概率真的是一样的吗?不是的,下面我们来分析以下。假如rand返回的最大值为105,那么使用上面那种方法获取的随机数那么生成1~6的概率要比生成7~10的概率要大,看出来了吗?因

2013-06-01 14:49:12 1235

哈弗曼编码实现文件压缩

使用了哈弗曼编码原理,实现文件压缩和解压缩。和我的博文进行配套:http://blog.csdn.net/todd911/article/details/8728301

2014-09-07

软件测试[(美)ron patton]读书笔记.pdf

软件测试[(美)ron patton]读书笔记

2009-04-13

空空如也

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

TA关注的人

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