PC客户端开发研究者---爱生活,爱code!

摘要: 下面就来以实例来说明子网掩码的算法:对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码为255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详... 阅读全文
posted @ 2014-04-15 19:33 xxiaoye 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。版本:占4位(bit),指IP协... 阅读全文
posted @ 2014-04-15 17:01 xxiaoye 阅读(8795) 评论(0) 推荐(0) 编辑
摘要: UML语言纵览视图UML语言中的视图大致分为如下5种:1、用例视图。用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能。2、逻辑视图。逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。3、组件视图。组件视图显示代码组件的组织结构。4、并发视图。并发视图显示系统的并发... 阅读全文
posted @ 2014-04-14 16:09 xxiaoye 阅读(8075) 评论(0) 推荐(1) 编辑
摘要: 在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。4、 3、 2、 1、 4、 3、 5、 4、 3、 2、 1、 5M=3:4... 阅读全文
posted @ 2014-04-14 11:01 xxiaoye 阅读(5077) 评论(0) 推荐(0) 编辑
摘要: 网上比较火的一个题,让程序跳转到绝对地址去执行 :可以的实现方式为: ( (void(*)())0x4110e6)(); (*(void(*)())0x4110e6)(); (*((void(*)())0x4110e6))();而*((void(*)())0x4110e6) (); 是不可以的,//非法的间接寻址测试代码如下:#include #include #include void getmemory(void){ int k=0,b=4; printf("I am here.\n");} int main(void){ unsigned int p; ... 阅读全文
posted @ 2014-04-11 16:05 xxiaoye 阅读(1229) 评论(0) 推荐(0) 编辑
摘要: 有时需要传递一个二维数组的参数时,经常会遇到不能从int[m][n]转换为int**的问题,所以我们需要采取将常规定义的数组(int a[m][n])进行修改定义.新的定义如下: int **a = new int*[m]; //或者 int **a=(int**)(new int[m... 阅读全文
posted @ 2014-04-11 12:58 xxiaoye 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 转载:秒杀多线程第十篇 生产者消费者问题//1生产者 1消费者 1缓冲区//使用二个事件,一个表示缓冲区空,一个表示缓冲区满。//再使用一个关键段来控制缓冲区的访问#include #include #include //设置控制台输出颜色BOOL SetConsoleColor(WORD wAttributes){ HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); if (hConsole == INVALID_HANDLE_VALUE) return FALSE; return SetConsoleTextAttribute(hCon.. 阅读全文
posted @ 2014-04-09 19:52 xxiaoye 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 转载地址:http://www.cnblogs.com/DylanWind/archive/2009/01/12/1373919.html前部分原创,转载请注明出处,谢谢!classBase{public:intm_base;};classDerivedA:publicBase{public:intm_derivedA;};classDerivedB:publicBase{public:intm_derivedB;};classDerivedC:publicDerivedA,publicDerivedB{public:intm_derivedC;};类结构图:内存分布图:DerivedC:De 阅读全文
posted @ 2014-04-09 18:59 xxiaoye 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 在网上博客中没有找到含金量高的关于树、森林与二叉树的相互转换的博文。但是在csdn资源下载中发现了一篇写的挺好的,现贴出来,供查看。文档下载地址:http://download.csdn.net/download/sandiy_yan/42013921、树转换为二叉树由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。将树转换成二叉树的步骤是:(1)加线。就是在所有兄弟结点之间加一条连线;(2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;(3)旋转。就是以树的根结点为轴心,将整棵树顺时针旋转 阅读全文
posted @ 2014-04-03 11:20 xxiaoye 阅读(3302) 评论(0) 推荐(0) 编辑
摘要: 【原诗】:待我长发及腰,将军归来可好?此身君子意逍遥,怎料山河萧萧。天光乍破遇,暮雪白头老。寒剑默听奔雷,长枪独守空壕。醉卧沙场君莫笑,一夜吹彻画角。江南晚来客,红绳结发梢。【回信】:待卿长发及腰,我必凯旋回朝。昔日纵马任逍遥,俱是少年英豪。东都霞色好,西湖烟波渺。执枪血战八方,誓守山河多娇。应有得胜归来日,与卿共度良宵。盼携手终老,愿与子同袍。 阅读全文
posted @ 2014-03-31 18:19 xxiaoye 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 同一进程下的线程可以共享以下?(BD)A.stackB.datasectionC.registersetD.filefd 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。 2.寄存器组的值 由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线 程切换到另一... 阅读全文
posted @ 2014-03-28 16:14 xxiaoye 阅读(5241) 评论(0) 推荐(0) 编辑
摘要: 1.基本知识点:1)操作系统是控制和管理计算机软硬件资源,以尽量合理有效的方法组织多个用户共享多种资源的程序集合。2)操作系统的基本功能:(1)处理机管理。主要功能包括进程控制、进程调度、进程同步和进程通信。(2)存储器管理。主要功能包括内存分配、地址映射、内存保护和内存扩充。(3)设备管,也叫I/O管理。主要功能包括缓冲区管理、设备分配、设备驱动和设备的无关性处理。(4)文件管理。主要功能包括文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理和存取控制。(5)用户界面管理。操作系统的用户界面就是操作系统与用户的接口,包括控制接口和程序接口。3)现代操作系统的基本特征:并发性、共 阅读全文
posted @ 2014-03-28 16:05 xxiaoye 阅读(354) 评论(0) 推荐(1) 编辑
摘要: 对于Windows的进程间通信的方式:1 文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。 Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。 应用程序有三种方法来使多个进程共享一个文件映射对象。 (1)继承:第一个进程建立文件映射对象,它的子进程继承该对象的句柄。 (2)命名文件映射:第一个进程在建立文件映射对象时可以... 阅读全文
posted @ 2014-03-28 15:17 xxiaoye 阅读(226) 评论(0) 推荐(0) 编辑
摘要: C++的内存有五大分区:堆区、栈区、自由存储区、全局/静态存储区、常量存储区。 五个数据段:数据段、代码段、BSS段、堆、栈内存分配方式有三种:从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。在栈上创建。在执行函数时,... 阅读全文
posted @ 2014-03-28 10:26 xxiaoye 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 伸展树: 1. 从空树开始任意连续M次对树的操作最多花费O(MlogN)时间。 2.其基本构想是,当一个节点被访问后,它就要经过一系列AVL树的旋转被放到根上。 3.当访问路径太长而导致超出正常查找时间的时候,这些旋转对未来操作有益。当访问耗时很少的时候,这些旋转则不那么有益甚至有害。二... 阅读全文
posted @ 2014-03-27 21:02 xxiaoye 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 1.AVL树是带有平衡条件的二叉查找树, 一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。2.AVL树的删除要比插入复杂。如果删除相对较少,那么用懒惰删除的方法是最好的策略。3.AVL树的插入操作: 1 #ifndef _AvlTree_H 2 struct AvlNode... 阅读全文
posted @ 2014-03-27 18:38 xxiaoye 阅读(302) 评论(0) 推荐(0) 编辑
摘要: int fact(int n) { //求n的阶乘if(n < 0) return 0else if (n == 0) return 1;else if (n == 1) return 1;else return n*fact(n-1);}一般而言,在X8632位系统中,一次函数调用消耗的栈空间大约是:4字节返回地址;4*n字节的参数,n是参数个数;12字节的寄存器保护区(EBPESIEDI)4*m字节局部变量,m是声明在函数内部变量的个数所以,对于楼主给出的实例,一次调用耗用的内存大小是4+4*1+12=20字节若递归1000次,大约耗20KB栈空间若递归10000次,大约耗2... 阅读全文
posted @ 2014-03-26 10:43 xxiaoye 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 //#include 3 using namespace std; 4 5 class Strings 6 { 7 public: 8 Strings(const char * str=NULL); 9 10 Strings(const Strings &another);11 ~Strings();12 Strings & operator=(const Strings &ths);13 private:14 char *m_data;15 };16 Strings::Strings(const char *str... 阅读全文
posted @ 2014-03-25 19:40 xxiaoye 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1.一棵树是N个节点和N-1条边的集合。2.对任意节点n_i,n_i的深度为从跟到n_i的唯一路径的长。因此跟的深度为1。n_i的高是从n_i到一片树叶的最长路径的长。因此所有的树叶的高都是1。一棵树的高等于它根的高。3.二叉查找树 其深度的平均值为O(logN),但深度最大也能够达到N-1二叉树节... 阅读全文
posted @ 2014-03-25 18:51 xxiaoye 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1、各种笔试面试资料和知识整理 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题 http://blog.csdn.net/hackbuteer1/2、STL容器介绍 STL中vector、list、deque和map的区别3、年轻的磊哥July ... 阅读全文
posted @ 2014-03-21 11:29 xxiaoye 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1.静态数据成员的定义。静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。其定义方式与全局变量相同。2.在函数体内静态变量具有“记忆”功能,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变。与全局变量相比,使用静态数据成员的优势: 静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其他全局名字冲突的可能性。(静态数据成员属于本类的所有对象共享)。 可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能。3.静态数据成员被 类 的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员。.. 阅读全文
posted @ 2014-03-21 10:26 xxiaoye 阅读(1354) 评论(0) 推荐(0) 编辑
摘要: 2*2*44.1*1000*60=10584000字节=10M2个声道*(16比特/8比特)字节*采样率(每秒采样44.1*1000次)*一分钟有60秒16比特是精度,描述振幅的,16比特等于2个字节。按照这个公式,比特率=2*2*44.1*1000=176.4kbps 阅读全文
posted @ 2014-03-18 12:57 xxiaoye 阅读(891) 评论(0) 推荐(0) 编辑
摘要: 进来了吧~你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的 阅读全文
posted @ 2014-03-14 15:44 xxiaoye 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1工欲善其事,必先利其器;2名不正则言不顺,言不顺则事不成;3 其身正,不令而行;4凡事预则立,不预则废;5 磨刀不误砍柴功;6 统筹兼顾;7 无规矩不成方圆;8欲速则不达;9众人拾柴火焰高;10 不知言,无以知人也。 阅读全文
posted @ 2014-03-12 15:30 xxiaoye 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 优先口决括号成员第一; //括号运算符[]() 成员运算符. ->全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:> ,关系:> = 从左到右++(前缀) --(前缀) -+~! sizeof * (取值) &(地址) (type) (都是一元运算)从右到左(type name)从右到左* / %从左到右+ -(二者都是二元运算)从左到右>从左到右 =从左到右== !=从左到右&从左到右^从左到右|从左到右& 阅读全文
posted @ 2014-03-12 14:21 xxiaoye 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 格式代码AABCABCDEFGH%SAABCABCDEFGH%5S####A##ABCABCDEFGH%.5SAABCABCDE%5.5S####A##ABCABCDE%-5SA####ABC##ABCDEFGHPrintf格式化字符串格式代码1-1212345123456789%d1-1212345123456789%6d#####1###-12#12345123456789%.4d0001-001212345123456789%6.4d##0001#-0012#12345123456789%-4d1####-12#12345123456789%04d0001-012123451234567 阅读全文
posted @ 2014-03-12 10:40 xxiaoye 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: 条款四十六:需要类型转换时请为模板定义非成员函数 条款四十七:请使用traits classes 表现类型信息 1.整合重载技术后,traits classes 有可能在编译期对类型执行if...else测试。 2.STL共有五种迭代器分类 1)Input迭代器只能向前移动一次一步,客户只可读取(不能涂写)它们所指的东西,而且只能读取一次。(模仿指向输入文件的阅读指针) 2)Output迭代器一切只为输出,它们只向前移动,一次一步,客户只可涂写它们所指的东西,而且只能涂写一次。 3)forward迭代器... 阅读全文
posted @ 2014-03-06 12:45 xxiaoye 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 条款三十九:明智而审慎的使用private继承 1.C++裁定凡是独立(非附属)对象都必须有非零大小。class Empty{};//没有数据,所以其对象应该不使用任何内存class HoldAnInt{ private: int x; Empty e; }//你会发现sizeof(HoldAnInt)>sizeof(int);在大多数编译器中sizeof(Empty)获得1.但是还会有默认的内存对其操作。 2.空白基类最优化class HoldAnInt:private Empty{ private: int x;}... 阅读全文
posted @ 2014-03-05 12:21 xxiaoye 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 条款三十二:确定你的public继承塑模出is-a关系 1.所谓最佳设计,取决于系统希望做什么事,包括现在和未来。 2.好的接口可以防止无效的代码通过编译,因此你应该宁可采取“在编译期拒绝企鹅飞行”的设计,而不是“只在运行期才能侦测它们”的设计。 条款三十三:避免遮掩继承而来的名称 1.C++的名称遮掩规则(name-hiding-rule)所做的唯一事情就是:遮掩名称。至于名称是否应相同或不同的类型,函数名称是否重载了不同的类型并不重要。一个名为x的double可以遮掩一个名为x的int;一个mf1()函数可以遮掩一个mf1(x)函数。 2.derived cl... 阅读全文
posted @ 2014-03-05 10:59 xxiaoye 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 条款一十三:以对象管理资源 1.把资源放进对象内,我们便可依赖C++的“析构函数自动调用机制“确保资源被释放。 2.auto_ptr是个”类指针对象“,也就是所谓”智能指针“,其析构函数自动对其所指对象调用delete。 void f(){ std::auto_ptrpInv(createInvestment());//调用factory函数使用pInv经由auto_ptr的析构函数自动删除pInv...} 获得资源后立即放进资源管理对象内。管理对象运用析构函数确保资源被释放。 3.由于auto_ptr被销毁时会自动删除它所指之物,所以一定要注意别让多个auto_ptr同时指向同一对... 阅读全文
posted @ 2014-03-03 12:21 xxiaoye 阅读(243) 评论(0) 推荐(0) 编辑