2013年10月2日

2的31次方与2的负31次方

摘要: 最高位符号位,0表示正数,1表示负数,典型的补码表示32位数自然能表示2的32次方个数2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647为什么正数比负数多一个?因为有一个正0:0000000000000000000000000000000一个负0:1000000000000000000000000000000那个-0呢就被定义成-2147483648了,所以 为什么要减1 也就不难解释了usigned int 是无符号int没有符号位摘自搜搜问问 阅读全文

posted @ 2013-10-02 16:47 xiaofangne 阅读(1704) 评论(0) 推荐(0) 编辑

2013年10月1日

string查找字符(串)

摘要: 在C语言中 strchr 和 strstr函数都被包含在头文件中,也就是要调用它们时要在程序前面包含头文件,也就是写这个语句:#includestrchr函数原型:char * strchr(char * str, char ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串 阅读全文

posted @ 2013-10-01 14:12 xiaofangne 阅读(495) 评论(0) 推荐(0) 编辑

哈夫曼树

摘要: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3)从森林中删除选取的两棵树,并将新树加入森林;(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。[2]来自 阅读全文

posted @ 2013-10-01 11:32 xiaofangne 阅读(228) 评论(0) 推荐(0) 编辑

动态生成数组

摘要: int Array(int ***Arr,int m,int n){ int **p,i; p=(int**)malloc(m*sizeof(int*)); /*动请申请一个指针数组*/ if(!p) return 0; for(i=0;i<m;i++) { p[i]=(int*)malloc(n*sizeof(int));/*动态申请一个数组*/ if(!p[i]) return 0; } *Arr=p; return 1; }.....int **matrix;int m,n;scanf("%d%d",&m,&n);if(!Array(&. 阅读全文

posted @ 2013-10-01 08:49 xiaofangne 阅读(400) 评论(0) 推荐(0) 编辑

邻接矩阵与二叉排序树

摘要: 逻辑结构分为两部分:V和E的集合。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。邻接矩阵(Adjacency Matrix):是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:①对无向图而言,邻接矩阵一定是对称的,而且对角线一定为零(在此仅讨论无向简单图),有向图则不一定如此。②在无向图中,任一顶点i的度为第i列所有元素的和,在有向图中顶点i的出度为第i行所有元素的和,而入度为第i列所有元素的和。③用 阅读全文

posted @ 2013-10-01 08:34 xiaofangne 阅读(351) 评论(0) 推荐(0) 编辑

2013年9月30日

创建非模拟态对话框

摘要: CXXXDlg *a;//定义要弹出的一个非模态对话框对象a=new CXXXDlg;//分配a->Create(IDD_XXX);//对话框ID a->ShowWindow(TRUE);//显示 阅读全文

posted @ 2013-09-30 15:10 xiaofangne 阅读(181) 评论(0) 推荐(0) 编辑

2013年9月29日

类型转换函数

摘要: CString strFileName;LPSTR lpStr = (LPSTR)(LPCSTR)strFimeName;LPSTR lpStr = _T("TestStr");CString str(lpStr);cstring.format-----》http://www.cnblogs.com/zlintokyo/archive/2011/09/28/2193885.htmlstring str1="ewafgsadgvfsd";const char *str=str1.c_str();char *str3="fsdrfsdcds&quo 阅读全文

posted @ 2013-09-29 22:25 xiaofangne 阅读(185) 评论(0) 推荐(0) 编辑

地址总线和数据总线

摘要: cpu处理计算的时候“数据”和“指令”是不同对待的。 8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令"。比如'00001101'. 又比如:“+1”这个运算,你要先指示CPU做“+”,完成后再输入“1”数据给CPU。 8位的CPU优点是设计简单,处理速度比较快。 缺点就是:软件设计复杂,繁琐。不利于计算机的发展。 后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。 32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命 阅读全文

posted @ 2013-09-29 11:56 xiaofangne 阅读(1406) 评论(0) 推荐(0) 编辑

x86的字节对齐与不对齐的问题

摘要: 比如这么一个结构体structfoo{shorts;intn;};structfoobar;假设bar的地址是0x12345670如果不按4字节对齐那么bar.n的地址就是0x12345672,也就是下面的黑体部分0x12345670a0a1a2a30x12345674b0b1b2b3为了取到n的值就需要访问两次内存,一次访问0x12345670,一次访问0x12345674然后把两个int值组合在一起,a2a3b0b1http://www.doc88.com/p-205512154878.html 此文中说明更加详细易懂市面上所说的64位处理器包括AMD Athlon 64与INTEL的EM 阅读全文

posted @ 2013-09-29 11:42 xiaofangne 阅读(530) 评论(0) 推荐(0) 编辑

size_t

摘要: 在C++中,设计 size_t 就是为了适应多个平台的 。size_t的引入增强了程序在不同平台上的可移植性。size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义一最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。为了提高代码的可移植性,就有必要定义这样的数据类型。一般这种类型都会定义到它具体占几位内存等。当然,有些是编译器或系统已经给定义好的。经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增强程序的可移植性。int i; // 定义一个int类型的变量is 阅读全文

posted @ 2013-09-29 10:34 xiaofangne 阅读(220) 评论(0) 推荐(0) 编辑

导航