if和switch效率的再研究

if和switch效率的再研究 昨天发现了一本叫做CSAPP的书,终于找到了关于switch问题的解答。 这是一段C代码: /* $begin switch-c */ int switch_eg(int x) { int result = x; switch (x) { case 100: result *= 13; break; case 102: result += 10; /* Fall through */ cas...
基础知识 | 2008-10-31 21:29 | 阅读 7954 次 | 评论 0 条

用c实现http协议

大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用thunder之类的下载软件下载网页,当用到那个“用thunder下载全部链接”时总觉得很神奇。 后来想想,其实要实现这些下载功能也并不难,只要按照HTTP协议发送request,然后对接收到的数据进行分析,如果页面上还有href之类的链接指向标志就可以进行深一层的下载了。HTTP协议目前用的最多的是1.1版本,要全面透彻地搞懂它就参考RFC2616文档吧。我是怕rfc文档了的,要看自己去看吧^_^ 源代码如下: /******* http客户端程序 httpclient.c...
协议 | 2008-10-31 21:22 | 阅读 5037 次 | 评论 0 条

由1、2、5三个数(个数不限)相加等于1000,共有多少种情况?

直觉:for(i=0;i<=500;i++) for(j=0;j<=200;j++) if((i*2+j*5)<=1000)count++;优化:一般化一下, 设求的和为n 枚举5的个数就行了 设i个5, 则剩下的n - 5 * i 由2和1组成的种数为floor((n - 5 * i) / 2) for (i = 0; i <= 200; i++) count+=(1000-5*i)/2+1; 讲讲,3=1+1+1=1+2,2种 4=1+1+1+1=1+1+2=2+2,3种 也就是一数字n由1和2组成共有n/2+1种 zj@zj:~/...
算法 | 2008-10-31 21:18 | 阅读 3606 次 | 评论 0 条

中兴笔试题

中兴笔试题 公共部分(50分)  1:作业调度程序从处于(B)状态的队列中选择适当的作业的作业投入运行。(3分)  A 运行 B 提交 C 完成 D后备  2:SQL语言中,删除一个表的命令是(B)(3分)  A CLEAR TABLE B DROP TABLE  C DELETE TABLE D REMOVE TABLE  3:ATM采用的线路复用方式为(C)(3分)  A 频分多路复用  B 同步时分多路复用  C 异步时分多路复用  D 独占信道  4:数据库中只存放视图的(C)(3分)  A操作  B 对应的数据  C 定义  D 限制 ...
求职 | 2008-10-31 21:14 | 阅读 5831 次 | 评论 0 条

两类 Shell 命令

一个Shell脚本的内部执行两种类型的命令。 通常(normal)的命令,这样的命令我们也可以在命令行的方式下来运行,称为处部命令, 内建(built-in)命令,称之为内部命令。内建命令是在Shell的内部来实现的而不能为外部程序所调用。 然而大多数的内部命令也会作为相对独立的单一程序来提供,而这也是POSIX 标准所要求的一部分。通常来说内部命令与外部命令并没有太大的区别,除非是这个内部运行得更为高效。
linux | 2008-10-30 12:51 | 阅读 3834 次 | 评论 1 条

DLP (Digital Light Procession)

DLP是“Digital Light Procession”的缩写,即为数字光处理,也就是说这种技术要先把影像信号经过数字处理,然后再把光投影出来。它是基于TI(美国德州仪器)公司开 发的数字微镜元件——DMD(Digital Micromirror Device)来完成可视数字信息显示的技术。说得具体点,就是DLP投影技术应用了数字微镜晶片(DMD)来作为主要关键处理元件以实现数字光学处理过 程。其原理是将通过UHP灯泡发射出的冷光源通过冷凝透镜,通过Rod将光均匀化,经过处理后的光通过一个色轮(Color Wheel),将光分成RGB三色(或者RGBW等更多色),再将色彩由...
专业术语 | 2008-10-29 03:55 | 阅读 3156 次 | 评论 0 条

双端队列

双端队列(JAVA)双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构,在容器类库中有时会用双端队列来提供栈和队列两种功能。
数据结构 | 2008-10-28 17:08 | 阅读 9511 次 | 评论 1 条

Catalan数——卡特兰数

【Catalan数——卡特兰数】 一.Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数) 二.Catalan数公式推导截图: 三.Catalan数的典型应用: 1.括号化问题。矩阵链乘: P=A1×A2×A3×……×An,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案? ...
数据结构 | 2008-10-28 12:01 | 阅读 13566 次 | 评论 1 条

c++的string类的所有函数及功能

append 函数能将某字符串(或数据串)加到某字符串后面 assign 函数能将字符串(或数据串)的内容设定给某字符串 at 函数能回传字符串中位于某个位置的字符 begin 函数将回传该字符串的起始定位器 c_str 函数能将字符串对象中的内容,以c语言字符串的方式输出 capacity 函数能回传目前所能控制的对象容器大小 compare 函数将会回传 可控制的字符吕容量 copy 函数能将数据串的内容复制到加一个数据串中 data 函数能将数据串的第一个起始指针传出 e...
基础知识 | 2008-10-26 17:02 | 阅读 14876 次 | 评论 3 条

字符串替换

今天去面试,给了个题: 要求把字符串 “sdjaabcasdkk;3asd,abcadapabcadp” 中的 子串“abc”使用 “zhong” 替代得到一个新的字符串 看着这个好像挺简单的,竟然花了我好长时间!!真是郁闷#include <stdio.h>#include <string.h>char *source = "sadaabcadadjalabcdd";int main(){ char dec[100] = {0}; int i; char *pstr = source; char *pstr1 = dec; printf("%s\n",...
求职 | 2008-10-25 00:36 | 阅读 5036 次 | 评论 6 条

初始化一个状态机

char fsm[8][128];void initfsm(){ const int line_len=sizeof(char)*128; memset(fsm[0],0,line_len); memset(fsm[1],0,line_len); memset(fsm[2],2,line_len); memset(fsm[3],3,line_len); memset(fsm[4],3,line_len); memset(fsm[5],5,line_len); memset(fsm[6],5,line_len); memset(fsm[...
技术 | 2008-10-24 21:45 | 阅读 4193 次 | 评论 0 条

MFC 注意事项

wndcls.lpszClassName="Weixin2003"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&amp;wndcls); HWND hwnd; hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW, 0,0,600,400,NULL,NULL,hInstance,NULL);即这里的 窗口名 Weixin2003 所依附的窗口类必...
MFC | 2008-10-23 22:39 | 阅读 5780 次 | 评论 6 条

C++ 中的基本语法

C++ 类class中定义的变量和C结构体struct中的变量一样 也不能赋初值,而把其赋成 0 是纯虚函数的特性 也就是不存在纯虚变量,因此不可 class z{ int a = 0; 或者 int a = 1; } 而只可 class z{ int a; }
基础知识 | 2008-10-23 14:15 | 阅读 5580 次 | 评论 6 条

一个Windows NT的应用程序典型地拥有9个预定义段

它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug可执行代码段,.text .text段也包含了早先提到过的入口点。IAT亦存在于.text段之中的模块入口点之前。(IAT在.text段之中的存在非常有意义,因为这个表事实上是一系列的跳转指令,并且它们的跳转目标位置是已固定的地址。)当Windows NT的可执行映像装载入进程的地址空间时,IAT就和每一个导入函数的物理地址一同确定了。数据段,.bss、.rdata、.data   .bss段表示应用程序的未初始化数据,包括所有函数或源模块中声明为stat...
技术 | 2008-10-21 23:18 | 阅读 4931 次 | 评论 1 条

使用 VMware 配置 虚拟Linux 系统

当你听别人说起Linux、FreeBSD甚至OS2等等新奇的操作系统时,是不是也想尝试看看?但是当听到需要重新切割硬盘,原有数据还有可能丢失时,是否又有些犹豫?当初我也是在Linux的门外彷徨很久,直到我找到了VMware。因为它既保证了Linux能正确安装且正常运行,又不破坏原来的操作系统,为我们除去了费心研究如何把硬盘分区分得合理和高效的苦恼。下面,我给大家介绍一下怎样用这款软件来安装Linux。 一、VMware的安装及配置 简单地说,VMware就是一款虚拟机软件,它可以在你现有的操作系统上虚拟出一个新的子机。这个子机一方面建立在你正在运行的操作系统之上,同...
软件 | 2008-10-20 22:17 | 阅读 12633 次 | 评论 4 条

SetWindowPlacement

SetWindowPlacement()函数讲解: 函数功能:该函数设置指定窗口的显示状态和恢复,最大化,最小化位置。   函及原型;BOOL SetWindowPlacement(HWND hWnd,CONST WINDOWPLACEMENT★lpwndpl);   参数:   hWnd:窗口句柄。   lpwndpl:指向一个WINDOWPLACEMWNT结构的指针,该结构给出了新的显示状态和窗口位置。   在调用函数SetWindowPlacement之前,将WINDOWPLACEMWNT结构的长度单元置为sizeof(WINDOWPLACEMENT)。如果lpwn...
MFC | 2008-10-18 22:41 | 阅读 4721 次 | 评论 0 条

_call宏定义 方法

;文件:attach.asm.;宏定义._call MACRO procedure, parameters:VARARG LOCAL param, reversed reversed TEXTEQU <>% for param, <parameters> reversed CATSTR <param>, <!,>, reversed endm% for param, <reversed> push param endm call procedureENDM这里的 reversed TEXTEQU...
默认分类 | 2008-10-17 12:35 | 阅读 4412 次 | 评论 0 条

const变量的副本

const int ii = 3; int *pi = (int *)&amp;ii; *pi = 4;赋给指针的是const的副本 也就是没有 改变 const的值,只是改变了副本的值
基础知识 | 2008-10-16 23:51 | 阅读 4882 次 | 评论 5 条

导入库描述

导入库 hello.lib和其对应的动态库具有一致的函数名 hello_hello_
基础知识 | 2008-10-15 13:22 | 阅读 2781 次 | 评论 0 条

SetItemData 和 SetItemText 区别

SetItemText()当然就是设置显示的内容了,还有SetSubItemText(); SetItemData()设置项数据,不显示,如果是指针的话,可以是任何数据,所以随便你怎么用。(Data 可以用来保存额外的一些数据)
MFC | 2008-10-15 12:56 | 阅读 6252 次 | 评论 0 条
浏览1943196次