C 数据类型与字节数组相互转化

uint16_t -> bytes

uint8_t uint16_t2bytes(uint8_t* buffer, uint16_t data)
{
if(buffer == NULL) return 0;
uint16_t tmp2byte = data;
*buffer = (tmp2byte & 0xff00) >> 8;
*(++buffer) = tmp2byte & 0x00ff;
return 2;
}

bytes -> uint16_t

uint8_t bytes2uint16_t(uint8_t* buffer, uint16_t* data)
{
if(buffer == NULL) return 0;
*data = (*buffer << 8) + *(buffer + 1);
return 2;
}

double -> bytes

uint8_t double2bytes(uint8_t* buffer, double data)
{
if(buffer == NULL) return 0;
uint8_t i = 0;
uint8_t* p = (uint8_t*)&data;
for(i = 0; i < 8; ++i) {
*(buffer + i) = *p++;
}
return 8;
}

bytes -> double

uint8_t bytes2double(uint8_t* buffer, double* data)
{
if(buffer == NULL) return 0;
*data = *((double *)buffer);
return 8;
}

最新文章

  1. 移动端设置字体px转换rem的脚本
  2. 安装Ubuntu之后
  3. Centos搭建Linux测试环境,几个基本的设置项
  4. hbases索引技术:Lily HBase Indexer介绍
  5. python中的面向对象编程
  6. BZOJ 2005 能量采集(容斥原理)
  7. C#让程序自动在管理员权限下运行
  8. Bootstrap_Javascript_手风琴
  9. 射频识别技术漫谈(14)——Mifare S50与S70的存取控制
  10. Python-第一章(开发基础)
  11. 类之间关系理解:组合&gt;聚合&gt;关联&gt;依赖;实现,继承
  12. 《编程题》穷举法求N年后有多少头牛
  13. 简单介绍下python中函数的基础语法
  14. Java实现一个简单的缓存方法
  15. 本地调试 谷歌浏览器报错:跨域问题处理 Access-Control-Allow-Origin
  16. REP-20147 Cannot implement column link for this detail SQL query. Converting to group link.
  17. Mpich编程
  18. VB6.0环境下的CATIA二次开发简介
  19. gdb调试汇总
  20. python datetime offset-aware与offset-navie相互转换

热门文章

  1. C#DataTableRow列值互转
  2. 洛谷p5723
  3. 还不来了解ChatGPT?免费账号
  4. Python装饰器实例讲解(三)
  5. STM32F0_HAL初始化系列:串口DMA输出
  6. 冰河指南AI技术社区基于ChatGPT正式启动运营
  7. 体验AI乐趣:基于AI Gallery的二分类猫狗图片分类小数据集自动学习
  8. JZOJ 2020.07.16【NOIP提高组】模拟
  9. 比较多普勒超声与临床缓解标准对RA放射学进展的预测效能
  10. vue .sync的理解