C/C++
_杯子
这个作者很懒,什么都没留下…
展开
-
不使用加号的加法运算
//加法int add (int a, int b){ //*递推 int c = 1; for (; c ^ 0; ) //循环条件为:0 != c { c = a & b; a = a ^ b; b = c<<1; } return a; //*/ /*递归 int c = a & b; int d = a ^ b; i原创 2012-10-10 17:20:24 · 633 阅读 · 0 评论 -
为什么计算机中一个数的相反数是这个数取反再加1
以32位PC机中整形数值(int)为例:在32位PC机中,数字以二进制方式存储,能够表示的最大的数为4G-1(2的32次方减1,转化为二进制数也即32位全为1),因为数字4G已经有33位了,最高位为1,剩余32位为0,所以计算机自动去掉最高位的1,只保留后面的32位,即4G = 0。说白了就是一个0~4G的数字循环,每当数字达到4G,就变为0。所以对于任意一个数字x,x+4G=x。那么x的原创 2012-10-10 16:54:06 · 1893 阅读 · 1 评论 -
Windows网络通信(Socket)入门代码
随便写写,非常简单,可以作为网络通信入门代码。代码分为两部分:一个服务端;一个客户端。分别建立两个工程,直接编译运行就可以见到效果!其中用到了多线程的一些技术,关于线程同步这方面暂未考虑!/************************************************************************//*Server.cpp原创 2012-11-02 17:15:44 · 532 阅读 · 0 评论 -
"找出字符串中第一个不重复的字符"和"找出字符串中最后一个重复的字符"的两种方法的C++实现
第二种方法(使用整形数组)的效率很高吧,推荐使用! //奇偶排序void Odd_EvenSort(int data[], int size){ //}//找出字符串中第一个不重复的字符int FindFirstNotRepeat(const char *pStr/* = NULL*/, int nSize/* = -1*/){ //若为空字符串就退出原创 2012-11-09 17:58:40 · 1246 阅读 · 0 评论 -
模板
一、类型参数与模板1、支持更多类型的冒泡排序函数:引入模板,将类型参数化。2、模板的实例化与对象实例化。模板实例化为类--编译期间完成。类实例化为对象--运行期间完成。int a = 128, b = 256;Buffer buf3; // 模板实参不能包含变量、函数调用、变量表达式等运行时对象二、类模板、函数模板与模板特化三、模板及其特化语法1、类模板及其特化原创 2012-11-12 22:04:52 · 414 阅读 · 0 评论 -
面试题集锦
一些经典的面试题,会不断更新滴!/************************************************************************//*train.h *//*****************************原创 2012-11-12 18:01:03 · 490 阅读 · 0 评论 -
一个简单的协程实现
typedef struct{ int i; int num; int state;} Task;// 加载函数int Load (Task* t){ switch (t->state) { case 0: t->state = 1; t->num = 0; t->i = 0; for (; t->i i++) { Sleep(30); return t->i; case 1: t->num++;原创 2014-10-07 20:28:15 · 430 阅读 · 0 评论