- 博客(11)
- 收藏
- 关注
原创 汇编入门
生成汇编代码 gcc -S 只生成.o文件 gcc -c 反编译 objdump -d (mac otool -tv) 汇编代码里所有以.开头的信息可以忽略 汇编代码后缀表示操作数的大小 b(byte)8 w(word)16 l(double words)32 q(quad words)64 cpu寄存器的图 操作数表示 常数 寄存器 存储器 常数 $-577 寄存器 %eax
2014-06-07 20:12:08
897
原创 微软笔试归来
#include using namespace std; class A { public: long a; }; class B: public A { public: long b; }; void seta(A *data, int idx) { data[idx].a = 2; } int main() { B d
2013-04-06 22:11:27
764
原创 光宝笔试
1. 一段程序声明了数组、指针,给几个sizeof,写出每个sizeof得多少。C语言指针、sizeof基本题。 2、考大端小端,给了int a[2] = { -1, 127},让写小端时内存中的二进制位。懂得小端和补码就可以做出此题。小端及数的地位在低地址。x86是小端 3、问sleep 和for那个用来延时比较好。我答了两点:for浪费cpu资源、for延时时间不准确。 4、写出几种进程
2013-04-05 15:52:06
816
原创 Programming Pearls第2章思路总结
正文 问题一 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。 答案见此博客 总结:时刻想着利用二分搜索来解决问题 问题二:循环旋转字符串 思路一:若要旋转k位,则每个字符向前(向后)移动k位。此方法只须n次操作,且仅需一个元素的额外空间,但此方法实际没比较慢,因为不能很好地利用cache。 思路二:问题可描述为把ab变为ba,可以把b分为bl
2013-03-27 10:33:13
557
原创 Programming pearls第一章思路总结
正文 要明确问题,位图数据结构,简单的设计 习题 第1题 C++STL中的set可用iterator顺序输出集合中的元素 第2题 当m为2i时,n/m可用位操作n>>i来实现,移位操作比除法效率高很多 同理,n%m也可用位操作实现(n&MASK),其中MASK为(1 第4题 产生[0, n)中的k个不重复的随机数 for i = [0, n) x[i] = i for i
2013-03-26 22:01:20
719
原创 n元素顺序入栈,出栈的可能性有多少种
包括编程之美上的买票问题、括号匹配问题都是一个问题,都是一个问题。这个问题的答案是卡塔兰数。解决这个问题的思考过程十分巧妙,个人觉得很难领会这其中蕴含的思考方法。 个人总结这个问题还是用递推(递归)的思路解决。 若用(n,m)表示有n个元素还没有入栈,栈内目前有m个元素时,出栈可能的种数。则问题就是(n,0)。 当目前状态为(n, 0)时只能进行入栈操作,则有(n, 0) = (n - 1,
2013-03-22 22:35:04
2234
原创 strcpy&strncpy实现
strcpy实现 2分实现 void strcpy( char *dest, char *src ) { while( (*dest++ = * src++) != '\0' ); } 4分实现 void strcpy( char *dest, const char *src ) //接口能给调用者传递更多的信息 { while( (*dest++ = *src++) != '\0'
2013-03-21 17:35:24
602
原创 从binary search看如何写代码
算法相关的书看的也有那么些了,对于解算法题也有点思路了,但自己真正动手写下的代码并不多。为了能快速看完一本书,一般都是只思考解题的思路,而没有自己亲手去写代码。当我想要把解题思路转换成具体的代码的时候,感觉那是相当拙计。 先从binary search开始吧,整理下从思考问题到具体写出代码的思路和方法。 按照Programming Pearls的思路,在写代码之前要明确问题定义,想出解决问题的
2013-03-16 14:03:50
767
原创 make入门
1. 简介 1.1 rule target ... : prerequisites ... recipe ... ... recipe可以是多行的,每行前都要有tab 1.2 简单的Makefile edit : main.o kbd.o command.o display.o \ insert.o
2013-03-08 21:29:58
801
原创 gcc使用入门
1 编译C程序 1.1 编译单个C文件 $ gcc -Wall hello.c -o hello一定加上-Wall显示警告信息,并修改代码重复编译直到消除所有warning(C/C++是很不安全的)。 1.2 编译多个文件 $ gcc -Wall main.c hello_fn.c -o newhello 无需指定.h文件 1.3 分别编译 1.3.1 编译 $ gcc -Wa
2013-01-23 22:52:06
642
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人