无我

让内心永远燃烧着伟大的光明的精神之火!
灵活的思考,严谨的实现
豪迈的气魄、顽强的意志和周全的思考

eSNACC对BOOLEAN的编码和解码

     摘要: 本文剖析asn-bool.h/c,从源代码来学习eSNACC对BOOLEAN的编码和解码。  阅读全文

posted @ 2012-04-20 15:55 Tim 阅读(288) | 评论 (0)编辑 收藏

eSNACC对长度的编码和解码

     摘要: 本文剖析asn-len.h/c,从源代码来学习eSNACC对长度的编码和解码。
在正式引出源代码之前,我觉得非常有必要强调几点非常重要的知识:
1、eSNACC编译器对数据的编码设计是反序的,也就是先编码数据并写进缓冲区,以此而知道了编码好的数据长度,然后再将本长度值编码插到缓冲区前面。这样设计的目的是减少性能的损失。而很多其他编译器是开一个临时缓冲区来完成这个工作,这就带来了性能的损失。详细的说明,请参加eSNACC文档。我们要记住的是eSNACC编码时反序的。
2、eSNACC既支持确定长度编码也支持不确定长度编码。原理是:确定长度编码,那么在数据之前的若干字节来表面后面数据的长度;若为不确定长度编码,那么数据前面的长度字节为0x80,此代表长度不确定,然后在数据最后用EOC(End-Of-Contents)来表示数据的结束。
3、eSNACC支持BER和DER编码。不过BER允许不确定长度,但是DER只支持确定长度,所以在他们的编码解码函数上有所不同。
4、如果感觉代码中的PROTO和PARAMS很陌生,请读本系列中的《关于老式函数声明》一  阅读全文

posted @ 2012-04-20 11:00 Tim 阅读(1583) | 评论 (0)编辑 收藏

关于老式函数声明

     摘要: #ifdef __USE_ANSI_C__
#define PROTO( X) X
#else /* !__USE_ANSI_C__ */
#define PROTO( X) ()
#endif /* __USE_ANSI_C__ */  阅读全文

posted @ 2012-04-19 16:46 Tim 阅读(487) | 评论 (0)编辑 收藏

程序设计语言层次结构

     摘要: 程序设计语言层次结构 C、C++、Java  阅读全文

posted @ 2012-03-30 16:47 Tim 阅读(528) | 评论 (0)编辑 收藏

linux用文件锁实现保证一个程序只能启动一个进程

     摘要: linux用文件锁实现保证一个程序只能启动一个进程  阅读全文

posted @ 2011-10-27 09:48 Tim 阅读(4876) | 评论 (0)编辑 收藏

【转】windows2003服务之FTP

     摘要: windows2003服务之FTP   阅读全文

posted @ 2011-09-21 17:08 Tim 阅读(396) | 评论 (0)编辑 收藏

【转】从Select语句看Oracle查询原理

     摘要: 从Select语句看Oracle查询原理  阅读全文

posted @ 2011-09-15 11:54 Tim 阅读(277) | 评论 (0)编辑 收藏

【转】gdb常用命令

     摘要: gdb常用命令
  阅读全文

posted @ 2011-09-15 10:42 Tim 阅读(528) | 评论 (0)编辑 收藏

python查找遍历指定文件路径下指定后缀名的文件

posted @ 2011-08-14 18:50 Tim 阅读(8955) | 评论 (0)编辑 收藏

python和UE中匹配中文的正则表达式

     摘要: python和UE中匹配中文的正则表达式&python全字匹配替换  阅读全文

posted @ 2011-08-14 18:43 Tim 阅读(952) | 评论 (0)编辑 收藏

仅列出标题
共16页: First 3 4 5 6 7 8 9 10 11 Last 
<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

本博客原创文章,欢迎转载和交流。不过请注明以下信息:
作者:TimWu
邮箱:timfly@yeah.net
来源:www.cppblog.com/Tim
感谢您对我的支持!

留言簿(9)

随笔分类(173)

IT

Life

搜索

积分与排名

最新随笔

最新评论

阅读排行榜