摘要: 最近在做数据结构的大作业,要写个简单的数据库,因此和 fstream 打交道略多。ios::app: 以追加的方式打开文件ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文ios::in: 文件以输入方式打开ios:out: 文件以输出方式打开ios::nocreate:不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败ios::trunc: 如果文件存在,把文件长度设为0 以上是网络上都能找到的一些... 阅读全文
posted @ 2013-12-16 11:14 Azard 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 使用递归的思想解决这个问题简单的例子:当n=0时,没有树,为0s(0)=0当n=1时,显然s(1)=1当n=2时,一个根节点一个节点在左枝上,或者一个根节点一个节点在右枝上s(2)=2当s=3时,有根节点,然后左2右0,2种情况;左1右1,1种情况;左0右2,2种情况s(3)=5利用求s(3)的思想,求s(n)时,相当于一个根节点,然后左边 i 个节点组成一个二叉树,右边 j 个节点组成一个二叉树,并且满足 i+j+1 = n,这样就得到递推公式:s(n) = s(0)*s(n-1) + s(1)*s(n-2) + s(2)*s(n-3) + ...... + s(n-2)*s(1) + s( 阅读全文
posted @ 2013-12-01 00:07 Azard 阅读(1408) 评论(0) 推荐(0) 编辑
摘要: 这次的se106的homework有一题对浮点数使用基数排序,做完之后感觉比较有趣。很多人觉得对浮点数使用基数排序,就是从小数点后面多少位开始使用10进制的方式一位一位排。但这是计算机保存浮点数,并不是数学上的小数,个人认为这样考虑不妥。应该遵循计算机保存浮点数的格式来排序。使用 IEEE 的 float 为例:1.算法思路 对于 IEEE 的 float 类型: 最高位31位是符号位,30~23位是阶码位,22~0位是尾数位。 IEEE的 float 类型有一个特性,就是从0到30位(除了符号位)对数字的大小的重要性依次增大,这样就可以和整数各位的排序一样了。 有一个例外问题就是... 阅读全文
posted @ 2013-10-30 15:40 Azard 阅读(2762) 评论(2) 推荐(0) 编辑
摘要: 由于CTF和其他一些作业的存在,lab8在发布之后过了2天才开动。发布当天看到pdf上有top1 +5 bonus然后在人人吐槽了一句没想到引来了一大波转发和押注,估计是我到目前为止被转发状态最多的一条吧。可见院内人士无聊的一面以及TA君无聊的一面,我压zhyk。听学长说lab8 performance很坑爹,但室友发布的一个晚上就把lab8的第二题做到了满分让我觉得这个lab很水的感觉。自己做完后发现果然很水,也许是TA君设置分数的问题。第一题 rotate 还是写了几个小时的,利用分块操作将读取的缓存命中优化改成写的缓存命中优化,基本就能拿到2.1左右,TA君设置了满分2.3,之后为了满分 阅读全文
posted @ 2013-10-27 01:51 Azard 阅读(581) 评论(3) 推荐(0) 编辑
摘要: 开学有一段时间了,没怎么写博客,希望今天开笔能保持下去。总要说点什么吧,那就说ICS的lab7关于流水线的优化吧。lab7真心是到目前为止做的最艰难的lab了,用的是CSAPP新版的pipeline,貌似修复了一下组合情况下的bug?网上几乎所有的攻略都是老版本的。TA君没怎么自己做,设置了个7.8分为满分,然后同志们就前赴后继了。这个跨越了国庆长假的lab耗费了我大量的时间,不过没有对面的tcbbd多。回到正题,关于这个lab的优化。由于新版本的lab的测试数据是正负随机出现,所以仅仅修改jxx的预测是没有用的。首先在添加了iaddl和leave指令后,再使用unrolling和jumpta 阅读全文
posted @ 2013-10-25 20:27 Azard 阅读(1711) 评论(1) 推荐(0) 编辑
摘要: 最近在读K&R,故开此栏,希望能早点读完这一本C的巨作。在1.5中,作者讨论了EOF,getchar()的一系列问题,我在测试过程中发现了关于ctrl+Z以及EOF的一些问题,改变了我之前的理解。先看个例子#include main(){ long nc = 0; int c; while ((c = getchar()) != EOF) { printf("int c:%d\n", c); ++nc; } printf("int c:%d\n", c); printf("%ld\n", nc);}我一共进行2次输入:(1) 阅读全文
posted @ 2013-09-05 22:56 Azard 阅读(616) 评论(0) 推荐(0) 编辑
摘要: http://www.nodebeginner.org/index-zh-cn.html做WebRTC项目学习中,非常不错的一本小教程,翻译的也很好 阅读全文
posted @ 2013-08-16 02:26 Azard 阅读(235) 评论(2) 推荐(1) 编辑
摘要: 时至暑假,好好回忆下上个学期ICS课程中CSAPP那本书上的6个lab。 Lab 1 : 位运算 貌似没什么好说的,学会SVN提交代码,然后就是智力题了。当时不清楚规则以为有30分是比谁的操作符少,最后几个人丧心病狂到用离散的知识,语法的顺序,简化操作符,最后总数竟然从120+到了90+...最后发现只要下于规定个数就是满分,sign~。不过在简化的过程中还是略有所得的。 Lab 2 : 二进制炸弹 加深对汇编的理解,根据汇编代码推测程序要干的事情,所谓的”逆向工程“,或许破解大概就是这种过程吧。难度不是太大,一步一步慢慢推敲都能搞定,乐趣是在过程中用gdb修改寄存器各种j... 阅读全文
posted @ 2013-08-04 00:50 Azard 阅读(2934) 评论(1) 推荐(0) 编辑
摘要: 小记:从广东玩回来寒假也差不多快没了,离开学不久,呆在家里太闲了,稍微看了点CSAPP,第二章的show_bytes和旁注,对Unicode和UTF-8,UTF-16这些东西产生了兴趣,原来还没有彻底搞明白这些东西是什么,看了点别人写的博客加之以实践,略有体会,小小的总结一下。===============================================以下正文================================================Unicode是一种字符集,由2个字节构成,从0000 0000~7FFF FFF,每个数字代表一个字符。它不是一种编码方式 阅读全文
posted @ 2013-02-16 21:46 Azard 阅读(353) 评论(1) 推荐(1) 编辑