社区
其它技术问题
帖子详情
求算法:序列化时的压缩办法
czstemp
2011-07-11 02:10:38
我要把为了把一些int型数据序列化成string后储存。
如果用stringStream,或atoi等函数,序列化后的数据大增,比如int 100000000本来只有4字节,
变成字符串后要10字节,太浪费了。
如果直接内存拷贝,又怕int中有连续的八个二进制00000000,等效于字符串终止符。
有没有快速的编码方法把一段内存变成askii字符?
...全文
306
9
打赏
收藏
求算法:序列化时的压缩办法
我要把为了把一些int型数据序列化成string后储存。 如果用stringStream,或atoi等函数,序列化后的数据大增,比如int 100000000本来只有4字节, 变成字符串后要10字节,太浪费了。 如果直接内存拷贝,又怕int中有连续的八个二进制00000000,等效于字符串终止符。 有没有快速的编码方法把一段内存变成askii字符?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackyjkchen
2011-07-11
打赏
举报
回复
我没用过,不是我们用过,一字之差,差之千里
jackyjkchen
2011-07-11
打赏
举报
回复
[Quote=引用 6 楼 czstemp 的回复:]
其实是用mongoDB存储,不知jackyjkchen大侠用过没,如果string中有\0
c_str()会不会错?
另外,我对mongoDB的二进制数据存储不太了解,好像是存文件,估计性能不好
[/Quote]
string可以存二进制数据的,c_str只是个内置类型指针,给你个起始地址,你想延长到哪里全看你自己的逻辑,注意别用strcpy、strlen这样专门处理字符串的函数就可以。
一般数据库都支持二进制存取,我们用过mongoDB,你可以试一下,应该可以。
反正还有base64方案备用,这个是专门用来序列化二进制数据的
ouyh12345
2011-07-11
打赏
举报
回复
string里可以有0的
czstemp
2011-07-11
打赏
举报
回复
其实是用mongoDB存储,不知jackyjkchen大侠用过没,如果string中有\0
c_str()会不会错?
另外,我对mongoDB的二进制数据存储不太了解,好像是存文件,估计性能不好
jackyjkchen
2011-07-11
打赏
举报
回复
你的存储是说“写文件”?
那就更简单了,连内存拷贝都不用的
直接去写int的地址就行了,别忘了用二进制方式或者windows api
luciferisnotsatan
2011-07-11
打赏
举报
回复
???
用二进制打开文件,写入不就行了。
读取时你也用二进制来读。
jackyjkchen
2011-07-11
打赏
举报
回复
阶段==截断
jackyjkchen
2011-07-11
打赏
举报
回复
而且,直接内存拷贝有什么不可以?
如果只是网络传输的话,socket是不会阶段的,你直接用unsigned char*存储就是了。
即便用string,也没问题,别用+=,用append,强制指定长度
jackyjkchen
2011-07-11
打赏
举报
回复
base64编码,长度*4/3,增加不多,电子邮件就这样做的
fastjson的jar包 绿色版
Fastjson是阿里巴巴开发的一款高效的Java语言实现的JSON库,它具有极快的速度和小巧的体积,广泛应用于数据解析和
序列化
场景。Fastjson 1.2.2版本是该库的一个稳定版本,提供了丰富的功能和良好的性能。在这个绿色版...
C#常用类库(100多个)
"C#常用类库(100多个)"这个资源包涵盖了众多实用的编程领域,包括文件处理、网络通信、HTTP交互、多线程、UI控件、Office文档操作、输入/输出(I/O)操作、JSON
序列化
与反
序列化
、
压缩
与解压、文本处理、正则表达式...
类似QQ的全套聊天系统[极品] 源码
4. **数据
序列化
与反
序列化
**:JSON或XML用于数据交换格式,可能使用Newtonsoft.Json或其他库进行
序列化
和反
序列化
操作。 5. **数据库设计**:数据库表结构设计,包括用户信息、好友关系、聊天记录等,可能涉及...
序列化
与
压缩
序列化
与
压缩
1.
序列化
的基本概念 2. 数据
压缩
的原理 3.
序列化
与
压缩
a.
序列化
的意义: i. 编写程序写文件A,另一个程序读取文件A ii. 进程通信
时
传输的数据 1) 基本数据类型实例:int,long,double等...
序列化
数据传输
压缩
序列化
的数据传输
时
以一定格式传输 例: struct data{ int64 data1; int64 data2; char data3[25]; } 但传输的数据实际上data1和data2大部分数据都是非常小的,只有极少数的数据会用到64位数据来进行保存,...
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章