序列化与反序列化(其实就是一种将各种数据转换成二进制流与二进制流的读取的概念)

序列化:将数据结构转换称为二进制数据流或者文本流的过程。序列化后的数据方便在网络上传输和在硬盘上存储。

反序列化:与序列化相反,是将二进制数据流或者文本流转换称为易于处理和阅读的数据结构的过程。

本质其实还是一种协议,一种数据格式,方便数据的存储和传输。

为什么需要序列化?

我们知道,计算机世界往往是根据二进制来区分数据的,例如一个字节、两个字节、三个字节等等,但是,由于在内存中或者磁盘上,或者平台的环境不同,为了方便数据在不同的地方能够具有相同的含义,我们需要将数据转换为一种大家都能识别的格式,二进制或者编码格式是大家都认同的方式,而序列化正好是将一种数据格式转换为二进制数据流的过程或者方法,那么该数据结构就能够在任何地方保持其原有的含义,这就是序列化的意义。


什么是编码?与序列化的区别?

编码也是一种约定数据的含义的方式。与序列化不同,其约定的是更底层一些的数据含义,例如字符的表示,有ASCII、UTF-8、GBK等等,例如整数的表示,1=00000001一个字节,编码约定了数据格式的最小单元,序列化是依赖于字符编码之上的一种数据格式。


二进制流和文本流的区别:二进制流是以二进制为最小单位进行编码,例如多少个bit代表什么,文本流是以字符来进行编码,约定好多少个字节(通常是以字节为单位)代表什么。



最后附一个C/C++序列化库,boost serialization。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值