没有合适的资源?快使用搜索试试~ 我知道了~
首页如何在C++中实现按位存取
实现紧凑存取,不是按一个字节一个字节地存取,而是按位存取,本文就是介绍了如何在C++中实现按位存取,需要的朋友可以参考下
资源详情
资源推荐
如何在如何在C++中实现按位存取中实现按位存取
实现紧凑存取,不是按一个字节一个字节地存取,而是按位存取,本文就是介绍了如何在C++中实现按位存取,
需要的朋友可以参考下
在我创业的一个项目中,为了节约网络带宽,因此在网络中传输数据需要实现紧凑存取,在国防,科研,航天,军工等多个领
域其实也有类似的需求。
实现紧凑存取,不是按一个字节一个字节地存取,而是按位存取。比如一个字节,我们可以存储8个bool信息,废话少说,直
接分享代码(备注:里面的代码算法值得优化)。
//以下为函数定义
/***********************************************************************/
/* 函数作用:从buffer读一个位 */
/* 参数pBuffer[in]:指定buffer */
/* 参数nStart[in]:指定位置 */
/* 参数nEnd[out]:返回结束位置 */
/* 参数retByte[out]:返回读取结果值 */
/* 返回:void */
/***********************************************************************/
void ReadOneBit( byte* pBuffer, int nStart, /* out */int& nEnd, /* out */ byte& retByte );
/***********************************************************************/
/* 函数作用:从指定buffer里读任意一段位置数据 */
/* 参数pBuffer[in]:指定buffer */
/* 参数nStart[in]:指定位置 */
/* 参数btLength[in]:读取长度 */
/* 参数nEnd[out]:返回结束位置 */
/* 参数retData[out]:返回读取结果值,支持任意数据类型 */
/* 返回:void */
/***********************************************************************/
template<typename T>
void ReadDataFromBuffer( byte* pBuffer, int nStart, byte btLength, /* out */int& nEnd, /* out */ T& retData );
/***********************************************************************/
/* 函数作用:从指定buffer里读取一段字符串 */
/* 参数pBuffer[in]:指定buffer */
/* 参数nStart[in]:指定位置 */
/* 参数nCount[in]:字符串长度 */
/* 参数nEnd[out]:返回结束位置 */
/* 参数pRetData[out]:返回读取字符串结果 */
/* 返回:void */
/***********************************************************************/
void ReadStringFromBuffer( byte* pBuffer, int nStart, int nCount, /* out */int& nEnd, /* out */char* pRetData );
/***********************************************************************/
/* 函数作用:向buffer写一个位 */
/* 参数pBuffer[in]:指定buffer */
/* 参数btData[in]:需要写入的值 */
/* 参数nStart[in]:指定位置 */
/* 参数nEnd[out]:返回结束位置 */
/* 返回:void */
/***********************************************************************/
void WriteOneBit( byte* pBuffer, byte btData, int nStart, /* out */int& nEnd );
/***********************************************************************/
/* 函数作用:向指定buffer里写入任意一段数据 */
/* 参数pBuffer[in]:指定buffer */
/* 参数tData[in]:需要写入的数据,支持任意数据类型 */
/* 参数nStart[in]:指定位置 */
/* 参数btLength[in]:读取长度 */
/* 参数nEnd[out]:返回结束位置 */
/* 返回:void */
/***********************************************************************/
template<typename T>
void WriteDataToBuffer( byte* pBuffer, T tData, int nStart, byte btLength, /* out */int& nEnd );
/***********************************************************************/
/* 函数作用:向指定buffer里写取一段字符串 */
/* 参数pBuffer[in]:指定buffer */
/* 参数pchar[in]:需要写入的字符串 */
/* 参数nStart[in]:指定位置 */
/* 参数nCount[in]:字符串长度 */
/* 参数nEnd[out]:返回结束位置 */
/* 返回:void */
/***********************************************************************/
weixin_38501751
- 粉丝: 6
- 资源: 939
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 保险服务门店新年工作计划PPT.pptx
- 车辆安全工作计划PPT.pptx
- ipqc工作总结PPT.pptx
- 车间员工上半年工作总结PPT.pptx
- 保险公司员工的工作总结PPT.pptx
- 报价工作总结PPT.pptx
- 冲压车间实习工作总结PPT.pptx
- ktv周工作总结PPT.pptx
- 保育院总务工作计划PPT.pptx
- xx年度现代教育技术工作总结PPT.pptx
- 出纳的年终总结PPT.pptx
- 贝贝班班级工作计划PPT.pptx
- 变电值班员技术个人工作总结PPT.pptx
- 大学生读书活动策划书PPT.pptx
- 财务出纳月工作总结PPT.pptx
- 大学生“三支一扶”服务期满工作总结(2)PPT.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功