无我

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

2012年4月20日

eSNACC对INTEGER的编码和解码

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

eSNACC中的整形与上一篇所讲的布尔型一样,也很简单,不过代码中还是有一点有趣的地方。
  阅读全文

posted @ 2012-04-20 17:26 Tim 阅读(1657) | 评论 (4)编辑 收藏

sizeof和预处理指令

posted @ 2012-04-20 17:05 Tim 阅读(934) | 评论 (0)编辑 收藏

eSNACC对BOOLEAN的编码和解码

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

posted @ 2012-04-20 15:55 Tim 阅读(303) | 评论 (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 阅读(1597) | 评论 (0)编辑 收藏

<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

公告

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

留言簿(9)

随笔分类(173)

IT

Life

搜索

积分与排名

最新随笔

最新评论

阅读排行榜