摘要:
现在内存条都是白菜价的时代,很多人手中都是4G大内存了。但是普通的32位操作系统只能认3G多的内存,有很多都是给白白的浪费掉了。近来很多人说使用补丁,能使32位的系统支持4G大容量内存。事实果真如此吗? 一,cpu的寻址能力 一般的cpu厂商标示的多少位cpu,其实说cpu的运算位宽。而CPU的位宽一般是以 min{ALU位宽、通用寄存器位宽、数据总线位宽}决定的!也就是说CPU由ALU、通用寄存... 阅读全文
摘要:
--------------------------------------------------- | 问题描述一:(分析scanf()和gets()读取字符) | ---------------------------------------------------- scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为... 阅读全文
摘要:
写程序时用malloc竟然出现段错误,而且明显那块没有用错,肯定是别的地方有内存泄漏的问题,导致最后内存泄漏了。需要好好查一查原因了。但程序中很多地方都用来malloc,内存全是随便用的,要改起来估计十分麻烦。。。。 下面找了点malloc与free的介绍,先看下,然后赶紧改代码。 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以 写下这篇文章作为一个对知识的总... 阅读全文
摘要:
关键词: 详细讲解IEEE浮点数 浮点数是如何存储的呢?目前已知的所有的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次方再加上符号。 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是... 阅读全文
摘要:
一.正数的进制转换 1.10进制->n进制 10进制转化成n进制的方法是 对n取余,所得余数倒序就是该10进制的n进制表示; 例如:10进制数:15,转换为16进制为: 15%16商0余15,所以结果为F 2.n进制->10进制 n进制转化成10进制的方法是 对n进制各位加权值求和; 例如:二进制数:0110 0100,转换为10进制为: 0 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2... 阅读全文
摘要:
在计算机系统中,补码是最重要的编码,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。补码的规则是基于原码和反码 计算机中的几种编码: 1,原码 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示... 阅读全文
摘要:
const用来限定一个变量的值不能被改变,初学者在使用const修饰指针变量时常容易犯错,看两个例子 例子A: char * const a = 'A'; a = 'B'; 例子B: const char * a = 'A'; a = 'B'; 结论:例子A是正确的,B是错误的,说明const在*左边修饰指针变量锁指向的值,在右边修饰指针变量本身 typedef用来定义一个类型的别名,#defin... 阅读全文
摘要:
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序: short flag; void... 阅读全文
摘要:
调用函数时,计算机常用栈来存储传递给函数的参数。 栈是一种先进后出的数据结构,栈有一个存储区、一个栈顶指针。栈顶指针指向堆栈中第一个可用的数据项(被称为栈顶)。用户可以在栈顶上方向栈中加入 数据,这个操作被称为压栈(Push),压栈以后,栈顶自动变成新加入数据项的位置,栈顶指针也随之修改。用户也可以从堆栈中取走栈顶,称为弹出栈 (pop),弹出栈后,栈顶下的一个元素变成栈顶,栈顶指针随之修改。函数... 阅读全文
摘要:
很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将 其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的, 由于在c... 阅读全文