C/C++
文章平均质量分 79
spch2008
github.com/spch2008
展开
-
C 存贮模式 near far huge
转自: http://www.cnblogs.com/draeag/archive/2007/09/20/899587.html在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。far指针的长度是32位,含有一个16位的基地址和16转载 2012-09-19 20:34:18 · 908 阅读 · 0 评论 -
最近点对
看了最近点对问题,实现一下,不知是否有错。#include using namespace std;struct Point{ Point(float x, float y) { this->x = x; this->y = y; } float x; float y;};float dist(Point &a, Point &b){ re原创 2013-03-29 10:09:31 · 897 阅读 · 0 评论 -
中缀转后缀求值
中缀转后缀思路:1. 扫描字符串,遇到数字输出,遇到操作符c 栈顶操作符的权值小于c,直接入栈 栈顶操作符的权值大于等于c,依次弹出,直到栈顶权值小于c,c入栈2. 括号需要特别处理,入栈之前与入栈之后,括号的优先级发生变化 ‘(’在栈外权值最大,即无条件入栈 ‘(‘在栈内权值最小,即任何其他(除‘)’外)操作符,都可入栈 原创 2014-07-14 17:00:34 · 778 阅读 · 0 评论 -
内存地址对齐
做过一些内存地址对齐的题,原创 2014-06-09 10:53:46 · 1774 阅读 · 0 评论 -
二进制炸弹实验报告
接触《深入理解计算机系统》这原创 2014-06-08 21:29:37 · 24632 阅读 · 0 评论 -
递归 求幂
1. 迭代算法long int pow(long int X, unsigned int N){ long int val = 1; for(int i = 0; i < N; i++) val *= X; return val;}2. 递归算法 long int pow(long int X, unsigned int N) { if(N =原创 2012-12-08 21:38:56 · 2288 阅读 · 0 评论 -
KMP 字符串查找
本文地址:http://blog.csdn.net/spch2008/article/details/9097371KMP算法解析 这篇文章讲解的很详细:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html KMP算法实现原创 2013-06-15 17:02:44 · 1079 阅读 · 0 评论 -
排列生成算法--序列法
序数法基于一一对应概念. 先在排列和一种特殊的序列之间建立 一种一一对应关系, 然后再给出由序列产生排列的方法。因为序列的产生非常方便, 这样我们就可以得到一种利用序列来生成排列的方法.原创 2013-07-29 20:13:05 · 2040 阅读 · 0 评论 -
auto_ptr源码实现
本文地址:http://blog.csdn.net/spch2008/article/details/8996339Exception specifications void fun() throw(){} 只是一种标识,约定该函数不应该抛出异常。 1. 如果该函数内部有throw语句,即直接抛出异常,则编译出错。 2. 如果该函数内部调用另一个函数,而此函数内部有原创 2013-05-30 21:03:28 · 1901 阅读 · 0 评论 -
Mismatching scalar and vector new and delete
In a previous entry I alluded to the problems thatcan occur if you mismatch scalar "new" with vector"delete[]"or vice versa.There is a nice description of C++ memory managementinC++ Gotchas: Avoid转载 2013-04-05 09:57:39 · 742 阅读 · 0 评论 -
glibc memcpy
#define OP_T_THRES 16#define op_t unsigned long int#define OPSIZ (sizeof(op_t)) void* memcpy(void* dstpp,const void* srcpp, size_t len){ unsigned long int dstp = (long int) dstpp; unsigne原创 2012-11-30 14:50:27 · 932 阅读 · 0 评论 -
glibc ctype
最近看了一下glibc,版本1.09.1。记录一下过程。ctype.h//实际上调用的都是__isctype#define isalnum(c) __isctype((c), _ISalnum)#define isalpha(c) __isctype((c), _ISalpha)#define iscntrl(c) __isc原创 2012-11-29 20:42:34 · 875 阅读 · 0 评论 -
C/C++ 内存对齐
转自:http://blog.csdn.net/wzzyz/article/details/6743813内存数据对齐:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、 性能原因:经过内存对齐后,CPU的内存访问速度大大提升。图一:这是普通程序员心目中的内存印转载 2012-11-29 11:46:00 · 616 阅读 · 0 评论 -
用基本位运算实现加减乘除
http://www.cnblogs.com/kiven-code/archive/2012/09/15/2686922.html转载 2012-10-24 18:14:57 · 611 阅读 · 0 评论 -
取余与位运算
在C风格语言中(比如C,C++,C# (注:排名按出生日期^_^)),取余运算符定义为“%”。但在很久很久以前,CPU采用如下方法计算余数(注意,该方法只对2的N次方数系有效):X & (2^N - 1)首先从求余数谈起,我们知道,计算机中存储的方式是0和1序列:1 0001 2^02 0010 2^13 0011 2^1 + 14 0100 2^2当我们把这些数字序列转载 2012-10-24 16:42:42 · 918 阅读 · 0 评论 -
最大连续子序列问题
一、穷举法int MaxSubsequence(int *arr, int arrLen){ int maxSoFar = 0; int max = 0; for(int i = 0; i < arrLen; i++) { for(int j = i; j < arrLen; j++) { max = 0; for(int k = i; k原创 2013-02-27 16:23:37 · 1180 阅读 · 0 评论