- 博客(150)
- 资源 (3)
- 收藏
- 关注
原创 《C# Primer 中文版》探讨
我是陈硕,与侯捷老师合作翻译了《C# Primer》这本书。这本书于2003年底出版,已经快两年了。这是我参与翻译的第一本书,虽然在翻译过程中下了很大的功夫,但我相信其中一定还有很多不足之处,也正如读者评论的“翻译得不太成熟”。现在看来,这本书里很多译注是多余的,有点唠叨,可能会影响读者阅读的思路。(我的一位好朋友也曾经向我提到这一点。)这本书不是那种每看一遍都有新的收获的经典好书,它的作用在于助
2005-10-22 10:54:00 9159 8
原创 关于在FPGA上实现AES算法的笔记
针对 key 长度为 128 bits 的AES算法。1. AES算法要做10轮运算,最基本的实现实现用11cycles。2. 每轮加密要用到16个Sbox,每个Sbox要占用1个2048 bit 的ROM。key expansion要用4个Sbox。如果on-the-fly 地进行,那么一共要20个Sbox;如果提前做好key expansion,那么需要16个Sbox外加1408bits RA
2005-10-21 13:05:00 8263 2
原创 利用Bresenham算法控制多部步进电机匀速转动
计算机图形学中绘制直线的Bresenham算法原本是用在绘图仪上控制X轴方向和Y轴方向的两部电机的,最近遇到一个十分类似的步进电机控制问题,用Bresenham算法恰好能解决。问题描述:有左右两个相同的步进电机,用8051单片机控制L297 + L298芯片驱动,需要它们同时转动(同时启动,同时停止),但转速不同。例如左侧电机正转180步,同时右侧电机反转97步。这就好比从原点出发画一条到点(18
2005-09-24 21:48:00 8823 1
原创 分析函数调用关系图(call graph)的几种方法
绘制函数调用关系图对理解大型程序大有帮助。我想大家都有过一边读源码(并在头脑中维护一个调用栈),一边在纸上画函数调用关系,然后整理成图的经历。如果运气好一点,借助调试器的单步跟踪功能和call stack窗口,能节约一些脑力。不过如果要分析的是脚本语言的代码,那多半只好老老实实用第一种方法了。如果在读代码之前,手边就有一份调用图,岂不妙哉?下面举出我知道的几种免费的分析C/C++函数调用关系的工具
2005-09-24 19:28:00 88716 7
原创 用CodeViz绘制函数调用关系图(call graph)
CodeViz是《Understanding The Linux Virtual Memory Manager》(at Amazon,下载地址在页尾)的作者 Mel Gorman 写的一款分析C/C++源代码中函数调用关系的open source工具(类似的open source软件有 egypt、ncc)。其基本原理是给 GCC 打个补丁,让它在编译时每个源文件时 dump 出其中函数的 cal
2005-09-22 01:15:00 37170 10
原创 LaTeX 写作的两个辅助工具:统计中文字数和关闭Acrobat中的PDF文档
LaTeX 没有像 Word 那样自带中文字数统计功能,加上 LaTeX 源文件中有许多控制字符,不能通过文件大小获知其中有多少汉字。为此我用C写了一个统计中文字数的小工具,名为 cwc ,即 chinese word counter。这个程序只有 count_files() 函数使用了 Windows API,稍作修改就能移植到 Linux/Unix 下。#include #include #i
2004-11-27 20:59:00 15196 1
原创 为 LaTeX 添加英文 TrueType 字体
在Windows + MikTeX环境下,添加中文字体最方便的办法恐怕是使用 Hooklee 的 xGBKFonts 工具(http://www.hooklee.com/tex.html);在 Linux 环境下,王垠改进的 GBKFonts (http://learn.tsinghua.edu.cn/homepage/2001315450/programs.html)或许是最好的选择。我用 xG
2004-11-21 15:14:00 9318 2
原创 《Word排版艺术》读后感——兼谈与LaTeX的比较
《Word排版艺术》读后感——兼谈与LaTeX的比较 我有两年多的LaTeX使用经验,用它排实验报告、毕业论文和书籍(半本);Word的使用时间长一些,但真正用好也不过是近一两年的事。这两个软件我都用得很熟,我想我可以一边谈谈读《Word排版艺术》的感受,一边把Word和LaTeX这两个排版软件做一对比。(考虑到本文可能会以纯文本方式传播,我只好把LaTeX写成这样了L,另外,文本所称
2004-11-19 12:52:00 25093 7
原创 支付每个勘误 2.56$ 会花 Knuth 多少钱?
基本上不花钱:)因为 Knuth 寄的是支票。我想每个收到这样支票的人,都会把它当作自己从 TAOCP 中找到了错误的证据,用镜框装好,挂在墙上:)估计没有几个人真的去把有Knuth亲笔签名的支票兑现,毕竟Knuth的签名比$2.56更值钱:)有几个网页为证:http://www.kernelthread.com/miscellaneous/dek.htmlhttp://budling.nytud
2004-11-12 23:21:00 6368 3
原创 正态分布的随机数发生器 in C#
主要参考《Numerical Recipes in C++ 2/e》p.292~p.294 和《Simulation Modeling and Analysis 3/e》p.465~p.466。Box 和 Muller 在 1958 年给出了由均匀分布的随机变量生成正态分布的随机变量的算法。设 U1, U2 是区间 (0, 1) 上均匀分布的随机变量,且相互独立。令X1 = sqrt(-2*l
2004-11-12 12:23:00 9373 4
原创 SystemC 初始化步骤
环境:VC toolkit 2003 + SystemC 2.0.1 为了找出SystemC定义了哪些全局变量/静态变量,我在crt/src/crt0dat.c的 void _initterm(_PVFV * pfbegin, _PVFV * pfend) 函数中设下断点,at Line 598: if ( *pfbegin != NULL ) (**pf
2004-07-05 13:15:00 10891 18
原创 SystemC——一套将C++扩展为硬件描述语言的Class Library (初学SystemC有感)
这几日接接触SystemC,有些感触:1. SystemC 是一套C++ Class Library,将C++扩展成了一门硬件描述语言(HDL)。我感觉,学习SystemC至少要懂两样东西:C++、一门硬件描述语言。我熟悉C++,并且熟悉Verilog,因此学SystemC能举一反三、触类旁通。2. SystemC 使用了C++的很多特性:多重继承、虚拟继承、模板、RTTI (at lea
2004-07-03 17:00:00 11409 8
原创 HEC虚拟机的一些改进建议
HEC虚拟机的一些改进建议 陈硕 2004-02-13 在《虚拟机的设计与实现——C/C++》一书中,作者Bill Blunden描述了一个简单但完整的虚拟机——HEC的设计及实现。在阅读第三章的过程中,我发现有几处值得改进的地方。不是针对HEC的总体设计和代码结构——那样牵一发而动全局,而是针对HEC虚拟机实现代码中某些细节做些改进。 1. 转换字节序 HEC的字节序(byte o
2004-06-21 11:24:00 8260 9
原创 第二届北师大程序设计竞赛
5月29日和5月30日这两天,北师大举行了第二届程序设计竞赛(暨 ACM 选拔赛)。我作为命题人(1 of 3)和裁判(1 of 4),参与了这次竞赛。 5月29日是热身赛,供选手熟悉比赛环境(PC2 )http://www.ecs.csus.edu/pc2/;30日上午9:30至下午2:30正式比赛,共6题,个人单独参赛,每人一台电脑,编程语言为C/C++,可查资料。 比赛过程中,评判软件没有出
2004-06-01 11:11:00 7887 7
原创 while (n-- > 0) 与 while (--n >= 0)
循环 n 次,除了最常用的 for (int i = 0; i 之外,还可以写 while (n-- > 0) {...} 和 while (--n >= 0) {...}。这两种写法的区别在于,如果 n 是 unsigned 类型,那么后面那种写法会导致infinite loop。今天就被这只小 bug 咬了一口:) 也怪自己偷懒,不爱写 for 循环。
2004-05-21 11:40:00 11888 6
原创 大学四年总结(一)
获专业一等奖学金次数:0获专业二等奖学金次数:0获专业三等奖学金次数:0获奖学金总次数:0获奖学金总金额:0元获各种荣誉称号:0次。专业课成绩排名:27 of 91英语:两次考6级,均不及格:(下场:被保送北师大电子系读研结论:一次不拿奖学金不难,难的是连续四年连一个三等奖学金都没有拿到,难上加难的是,这样的人居然还获得保送读研的资格,当真是天理不容啊:)
2004-05-19 23:07:00 16282 26
原创 LaTeX 与字体
在我看来,字体是 LaTeX 中最复杂的问题。1. 选择字体 适合屏幕阅读的字体不一定适合打印,适合CRT显示器的字体不一定适合LCD显示器。例如Windows自带的宋体在屏幕上显示很清晰,而打印出来就比较难看(显得单薄)。正文我一般喜欢用华康简宋或方正书宋简体这两种宋体。英文字体也是如此,在屏幕上我比较喜欢看无衬字体(sans serif)例如 Verdana 和 Arial,而打印到
2004-05-04 14:45:00 21931 4
原创 LaTeX 常用功能
1. 段首缩进 中文习惯在段首缩进两格,在LaTeX中,/parindent 表示段首缩进的长度,我们将它设置为当前字号的两个大写字母M的宽度,大约正好是两个汉字的宽度:/setlength{/parindent}{2em}LaTeX 默认每节的第一段的段首不缩进,这不符合中文排版习惯。我们希望正文的每一段都要缩进,使用indentfirst宏包就可办到:/usepackage{
2004-05-03 01:06:00 33002 8
原创 变长参数的 Tracer
几天前,在CSDN论坛看到这么一则讨论:在宏定义中怎么使用可变参数?(http://expert.csdn.net/Expert/topic/2925/2925165.xml)。楼主希望能定义这样的macro:#define fun1(a, b, ...) fun2(__FILE__, __LINE__, a, b, ...)我猜楼主是想写trace,如果不能使用可变参数的macro,
2004-04-29 22:15:00 7511 10
原创 Linux 下配置 802.1X
寝室的网络采用802.1X认证,新装了个RedHat 9 ,发现上不了网,需要安装 802.1X 认证客户端。学校的网管只提供华为的Windows客户端,没有Linux版。自己动手,从 www.open1x.org 下载 xsupplicant ,从 http://libdnet.sourceforge.net/ 下载 libdnet-1.7.tar.gz 。先编译安装libdnet、再安装xsu
2004-04-29 16:07:00 15117 8
原创 LaTeX 印象
LaTeX是一款半专业的排版软件。之所以说它“半专业”,是因为 1) 它能排出专业出版水准的书籍和文章;2) 它不是为专业排版人员准备,而是给书籍/文章的作者用的。我目前主要用LaTeX排版书籍和毕业设计报告,因为版式和内容完全可由我控制。如果用它排文章,那么哪家杂志社(非学术刊物)会接受LaTeX的稿件呢;) 学习LaTeX不难,一下午就能上手,一两周就能熟练运用。对我而言,LaTeX
2004-04-28 20:09:00 6673 8
原创 书籍的基本结构, in XML & LaTeX
http://worldhello.net/doc/docbook_howto/ 三国演义 贯中 罗 宴桃园豪杰三结义 斩黄巾英雄首立功 话说天下大势,分久必合,合久必分。 张翼德怒鞭督邮 何国舅谋诛宦竖 且说董卓字仲颖,陇西临洮人也,官拜河东太守,自来骄傲。
2004-04-28 15:39:00 5274 6
原创 Microsoft Visual C++ Toolkit 2003 发布
http://msdn.microsoft.com/visualc/vctoolkit2003/ The Microsoft Visual C++ Toolkit 2003 includes the core tools developers need to compile and link C++-based applications for Windows and the .NET Com
2004-04-23 17:10:00 8449 5
原创 算法复杂度攻击
1. Hashing我们经常使用这样的字符串的Hash函数:// 随手写的,未严格测试unsigned long Hash(char* str){ assert(NULL != str); unsigned long hash_val = 0xDEEDBEEFul; // hash seed unsigned char* p = (unsigned char*)str
2004-04-22 13:06:00 7975 2
原创 书评:《C# Primer》 by Joe Casad
书评:《C# Primer》Joe Casad / 陈硕 译译注:Joe Casad是 C/C++ Users Journal 杂志的主编(editor-in-chief)。原文发表于 CUJ Online Exclusives, March 2003,网址为:http://www.cuj.com/webonly/2003/0303/web0303a/web0303a.htm
2003-08-12 22:15:00 3695
原创 zlib 与 libpng 的配置与使用 part 3 libpng的安装与生成PNG图片
libpng 的安装接下来,安装 libpng 的过程要稍微轻松些。先下载最新的 libpng 程序库源文件。网址是http://sourceforge.net/projects/libpng/或http://www.libpng.org/pub/png/。不妨设下载的文件是 libpng-1.2.5.tar.gz,将这个文件释放到D:/libpng/。修改D:/libpng/libpng
2003-04-04 10:54:00 25900 1
原创 zlib 与 libpng 的配置与使用 part1
zlib 与 libpng 的配置与使用Solstice 2003/04/3说明:本文节选自我主页上的一篇文章,原文介绍了1) Wave 文件的格式、2)读取 Wave 文件内容,并显示文件的基本信息、3)压缩库 zlib 的安装与简单应用、4)PNG 库 libpng 的安装、5)使用 libpng 生成 PNG 文件、6)绘制 Wave 文件的波形,这里只截取3、4、5这三部分内容。
2003-04-04 09:10:00 6117
原创 zlib 与 libpng 的配置与使用 part 2 zlib的安装
zlib 的安装libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作。libpng 使用 zlib 程序库作为压缩引擎,zlib 也是著名的 gzip (GNU zip) 所采用的压缩引擎。我们首先安装zlib,从其官方网站下载最新的源程序,不妨假设文件名是zlib-1.1.4.tar.gz。网址:http://www.gzip.org/zlib/。
2003-04-04 09:10:00 9646 1
原创 用next_permutation()生成r-组合数,兼发现VC7的一个bug
C++ standard library提供了两个生成排列的algorithms:next_permutation()与prev_permutation(),却没有提供生成组合数的标准函数。 由于排列与组合之间有着密切的联系,我们很容易就可以从“排列”获得“组合”。从n个元素中任取r个元素的组合,有n! / (r! * (n-r)!)个。这些组合可用多重集{r·1, (n-r)·
2002-10-21 09:10:00 7424 2
原创 STL性能测试
作者主页http://www.chenshuo.com可下载测试文本与源代码C++ Standard Template Library——STL的性能究竟如何,不同版本的STL其性能差异有多少?为了解这些,让我们来做一个简单的测试吧。测试的基本思路是用C与C++分别实现一个程序,实现相同的功能,并要求C++程序的主要数据结构用STL中的Containers、Algorithms等来实现。
2001-10-03 12:18:00 15729 13
当析构函数遇到多线程── C++ 中线程安全的对象回调 PDF
2010-01-23
《当析构函数遇到多线程》PPT
2010-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人