自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花开花落,花落花开

走一步柳暗花明,退一步海阔天空

  • 博客(95)
  • 收藏
  • 关注

原创 c语言 全局(静态)和局部数组初始化

全局和静态数组根据规范要求初始化为0,但是局部数组如果不显示初始化,它的值不确定。code: result:

2013-11-14 17:44:09 6822

原创 接口类使用

假设有接口类Icommand,不同的模块有不同的接口:Acommand, Bcommand,Ccommand类均继承自Icommand而对于真正的使用场合,如下:某一场合需要Acommand:Icommand *Ic_pa = cmdFactory->Create("A");某一场合需要Bcommand:Icommand *Ic_pb = cmdFactory->Create("B")

2012-12-16 14:23:40 666

原创 android back/home 键事件

@Override public boolean onKeyDown( int keyCode, KeyEvent event ) { // TODO Auto-generated method stub switch (keyCode) { case KeyEvent.KEYCODE_BACK: break ;

2012-12-13 09:38:43 634

原创 USIM Application session 激活过程

USIM Application session的激活是选择相应的DF,然后读取session所需的ef。ME                                UICC--------SELECT  AID------->--------  READ EFs  -------->.....--------  STATUS      -------->

2012-12-09 19:06:47 2696 3

转载 unicode 编码表

[zz]http://jlqzs.blog.163.com/blog/static/2125298320070101826277/unicode编码表1 unicode编码表    Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符,  比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来  表示,为了与十进制区分,十六进制以0x开头,0x7E

2012-11-26 17:31:39 14073

转载 BSC,MSC,HLR的作用

BSC,MSC,HLR分别的作用:MSC交换设备,程控交换机;BSC是基站控制器,用来控制BTS;HLR是本地位置寄存器,可以理解成一个数据库,存放本地移动用户的一些数据。BSC:基站控制器,它与BTS基站收发机构成基站子 系统。MSC:移动交换中心,它是网络的核心,提供交换功能并且面对下列功能实体:BSS、HLR、VLR、AUC、EIR、OMC和固定网,把移动用户与固定网用户

2012-04-01 10:13:08 9572

转载 RSA 算法

一、RSA算法 :首先: 找出三个数, p, q, r, 其中 p, q 是两个相异的质数,r 是与 (p-1)(q-1) 互质的数...... p, q, r 这三个数便是 private key .接著: 找出 m, 使得 rm == 1 mod (p-1)(q-1).....这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了.....

2012-04-01 09:29:48 1161

原创 c语言 NULL

2011-12-19 13:30:50 961 1

原创 c语言中的数组与指针

在c语言中,只有在函数定义的形式参数中,数组和指针是一致的。下面一段是c expert中的代码,我另外又加了一些。char ga[] = "abcdefghijklm";void my_array_func(char ca[10]){ printf(" value of ca = %#x \n", ca); printf(" addr of array param = %#x \n"

2011-12-06 14:22:16 638 1

原创 反思程序中的代码和数据

在程序设计中,不要过分区分代码和数据,两者在一定情况下可以转换。很多著名的黑客软件,巧妙使用代码植入到数据区,然后运行自己的shell,操纵用户电脑。若以第三者来看,代码区和数据区说白了就是一系列的二进制,取决于你是怎么去看待这些个二进制数据。早期的internet蠕虫病毒,其繁殖的途径之一就是通过脆弱的finger防护进程。罪魁祸首是该进程中使用标准I/O库函数gets(), 它不检查缓冲区

2011-12-05 14:11:40 678 1

原创 c语言中的函数覆盖

在c程序设计中,不要让程序中的任何符号成为全局的,除非有意把他们作为程序的接口之一。如果不这样,就会因此产生重大bug,并且很难调试和发现。当编译器注意到库函数被另外一个定义覆盖时,它通常不会给出错误的信息。C语言的设计哲学——程序员所做的都是对的。

2011-12-05 10:13:11 3023

原创 相邻的字符串常量自动合并

在ANSI C中,相邻的字符串常量将被自动合并成一个字符串。除了最后一个字符串外,其余每个字符串末尾的'\0'字符会被自动删除(编译器的行为)#include #include int main(int argc, char *argv[]){ char* s1 = "hello""hello"; char* s2 = "hello" "hello"; char* s3

2011-12-04 12:51:00 1040

原创 crc16

#include using namespace std;// x^16+x^12+x^5+1unsigned short crc16(unsigned char *ptr, int len){ unsigned short CRC = 0xFFFF; // vc++ sizeof(unsigned short) == 2 unsigned char j, tmp =

2011-11-26 14:06:51 721

原创 数组边界引起的死循环

int main(int argc, char* argv[]){ int i, a[10]; for (i = 1; i<=10; i++) a[i] = 0; return 0;}以上代码为死循环,如栈向低地址成长,那么a[10]实际为i,于是i赋值为0,进入死循环

2011-11-16 15:24:00 507

原创 词法分析中的贪心

C语言对多字符识别时,采用贪心,使用规则如下:每一个符号应该包含更多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否有可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串以不再可能组成一个有意义的符号。这个处理策略有事被称为“

2011-11-16 14:09:20 466

原创 0长度数组问题

标准c/c++不支持0长度数组,GNU支持struct node{ char a; short b; int c; char* d; char e[0]; }; int main(int argc, char* argv[]) { printf("%d\n", sizeof(struct node)); system("pause

2011-11-08 14:20:45 585

原创 经典hanno

/*hanno tower -1- | | --2-- | | ---3--- | | ... | |

2011-10-28 15:44:21 424

原创 some problems

const int x = 5;int main{ int x[x]; int y = sizeof(x)/sizeof(int);}display: 5int x = 5;int main(int argc, char* argv[]){ int x = x; cout<<x<<endl; return 0;}display:uninil

2011-10-25 14:38:38 651 2

原创 状态机

从倒水问题中,深刻理解了状态机设计的重要性,包括状态机抽象和状态机转化关系的设计。倒水问题,定义好状态和状态转化关系,剪枝去掉不可能的状态和重复的状态,用一片内存空间来保存状态。

2011-10-16 20:01:10 489

原创 c++ const 重载 和 引用

class A{public: void foo(int &a) { cout<<"1"<<endl; } void foo(int a) { cout<<"2"<<endl; } const int fun() const// overload {

2011-10-13 21:57:53 679

原创 堆介绍

大根堆小根堆最大最小堆双端堆(对称最大最小堆)

2011-10-13 17:30:52 447

转载 优先级倒挂

优先级倒挂是指一个低优先级任务持有一个被高优先级认为所需要的共享资源。这样高优先级任务因资源缺乏一直处于受阻状态,一直到低优先级任务释放资源为止。这样实际上造成了两个任务优先级的倒挂。如果此时有其他优先级介于两者之间的任务,并且其不需要这个共享资源,则该中级优先级的进程将获得CP

2011-10-12 20:35:33 1123

原创 Fibonacci数列的递归优化

// right = F(n-2) , return value = F(n-1)int fibonacci_R(int n, int& right){ if(2 == n) { right = 1; return 1; } int t = 0; righ

2011-10-12 14:55:15 562

原创 将有序数组转化为二叉树

using namespace std;struct node{ int val; struct node* left; struct node* right; node(int v=0) { val = v; left = 0; right = 0;

2011-10-11 21:45:13 1554

原创 如何维护一个中位数

设计一个数据结构,包括两个函数,插入数据和获得中位数。利用大根堆和小根堆,其中大根堆维护较小的一半数据,小根堆维护较大的一半数据。然后根据相应的情况,对两个堆做相应的堆化操作,以满足两个堆中元素数目一致。时间复杂度O(lgn)extension:设计一个堆

2011-10-11 21:29:38 1059

转载 写宏定义:得到一个field在结构体(struct type)中的偏移量

#define OFFSETOF(type, field)  ((size_t)&(((type *)0)->field))(type *)0:把0地址当成type类型的指针。((type *)0)->field:对应域的变量。&((type *)0)->field:

2011-10-10 13:42:28 978

原创 已知一个序列seq=[a,b,....,z,aa,ab,...,zz,aaa,aab,....],求任意一个字符串s=[a-z]+在seq中出现的位置

// 26进制,不过有缺点,需要大数处理#include using namespace std;long pow(long x, long y){ long ret = 1; while(y>0) { ret = ret*x; --y; } re

2011-10-08 15:05:40 2273

原创 查找字符串中最长的连续数字子串

#include using namespace std;int max_num_str(char* pstr, char* output){ if ( *pstr == '\0') { *output = '\0'; return 0; } char

2011-10-08 14:46:53 1795

原创 查找字符串中第一个出现一次的字符

#include using namespace std;// look up the first character in the string.// using hash table to reduce the time used.char look_up(con

2011-10-08 14:15:09 618

原创 寻找两个满足条件的数

题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。ans:用位图

2011-10-07 22:00:02 405

转载 排序N个比N^7小的数,要求的算法是O(n)

采用基数排序,用10个桶(vector),每一个桶用队列表示(queue),分别代表0-9,然后依次从低位到高位开始将要排序的数倒入桶中,然后再顺序取出来,直到排序完成。若有5个数,12,4,5,130,28第一次(个位):0: 13012: 12

2011-10-04 20:54:33 982

原创 继承的内存分布和代价

class B{private: int val; char c1; char c2; char c3;};class A1{private: int val; char c1;};class A2: public A1{private: c

2011-10-04 16:04:47 347

原创 static data members

在c++中,对于static data members,通过一个指针和通过一个对象来存取member的效果是一样的,而且这是唯一一样的situation。

2011-10-04 15:37:37 471

原创 内存分布

struct test{int a;int b;int c;};int main(int argc, char* argv[]){ test x; test y; printf("%x, %x, %x\n", &x.a, &x.b, &

2011-10-04 15:12:39 316

原创 inline关键字

inline int add(int a,int b)1.参数直接替换形参, int a = 1; int b = 2; int c = add(a, b);2.直接才编译过程中,能够判断出结果的,直接给出结果, int c = add(1,2);3.避免

2011-10-03 22:21:48 323

原创 不相关成员函数的调用

#include using namespace std;class base{public:    base(): a(0){}    ~base(){};    void show()    {        cout << "th

2011-10-03 21:08:22 349

原创 C与C++的相互调用问题

#ifdef __cplusplusextern "C" {#endif int add(int a, int b); #ifdef __cplusplus}#endif int add(int a, int b){ return a+b;

2011-10-03 20:51:53 339

原创 dijkstra算法

//Dijkstra 算法的时间复杂度为O(n^2)   空间复杂度取决于存储方式,邻接矩阵为O(n^2)//非负权, 有向#include #include using namespace std;const int max_vex = 100;const in

2011-10-03 20:29:44 1792

原创 字符存在

当有一个字符串str1,另一个字符串str2,要判断str2中的字符是否在str1中存在,可以使用hash表判断,O(m+n)。也可以将每一个字符一次赋予一个素数, 从2开始,然后将这些素数相乘。然后遍历第二个字符串,用素数去除前一次的乘积,若无余数,就存在,反之则不存在。

2011-10-03 12:24:07 363

原创 判断一个点是否在一个三角形内(二维)

设有三角形abc和点p,需要判断p是否在三角形abc内部只需要用叉乘进行判断,abXap, apXac,pbXpc是否都与abXac平行。另外面积法也能判断,判断三角形abp,acp,bcp的面积和是否等于三角形abc的面积。其中,求面积可以用叉乘来实现。

2011-09-29 21:48:24 593

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除