博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
how convert large HEX string to binary array ?
阅读量:6079 次
发布时间:2019-06-20

本文共 2552 字,大约阅读时间需要 8 分钟。

I have a string with 14 characters . This is a hex represantation of 7bytes. I want to convert it to binary.

 

int32_t Hex2Bin( uint8_t * pHexString, uint8_t * pBinArray ){  int o = 0;  int i = 0;  while ( pHexString[ i ] != 0x00 )  {    switch ( pHexString[ i ] )    {      case '0':        pBinArray[ o ] = 0x00;        break;      case '1':        pBinArray[ o ] = 0x10;        break;      case '2':        pBinArray[ o ] = 0x20;        break;      case '3':        pBinArray[ o ] = 0x30;        break;      case '4':        pBinArray[ o ] = 0x40;        break;      case '5':        pBinArray[ o ] = 0x50;        break;      case '6':        pBinArray[ o ] = 0x60;        break;      case '7':        pBinArray[ o ] = 0x70;        break;      case '8':        pBinArray[ o ] = 0x80;        break;      case '9':        pBinArray[ o ] = 0x90;        break;      case 'A':      case 'a':        pBinArray[ o ] = 0xa0;        break;      case 'B':      case 'b':        pBinArray[ o ] = 0xb0;        break;      case 'C':      case 'c':        pBinArray[ o ] = 0xc0;        break;      case 'D':      case 'd':        pBinArray[ o ] = 0xd0;        break;      case 'E':      case 'e':        pBinArray[ o ] = 0xe0;        break;      case 'F':      case 'f':        pBinArray[ o ] = 0xf0;        break;      default:        return -1;    }    if ( pHexString[ i + 1 ] == 0x00 )      return -1;    switch ( pHexString[ i + 1 ] )    {      case '0':        pBinArray[ o ] |= 0x00;        break;      case '1':        pBinArray[ o ] |= 0x01;        break;      case '2':        pBinArray[ o ] |= 0x02;        break;      case '3':        pBinArray[ o ] |= 0x03;        break;      case '4':        pBinArray[ o ] |= 0x04;        break;      case '5':        pBinArray[ o ] |= 0x05;        break;      case '6':        pBinArray[ o ] |= 0x06;        break;      case '7':        pBinArray[ o ] |= 0x07;        break;      case '8':        pBinArray[ o ] |= 0x08;        break;      case '9':        pBinArray[ o ] |= 0x09;        break;      case 'A':      case 'a':        pBinArray[ o ] |= 0x0a;        break;      case 'B':      case 'b':        pBinArray[ o ] |= 0x0b;        break;      case 'C':      case 'c':        pBinArray[ o ] |= 0x0c;        break;      case 'D':      case 'd':        pBinArray[ o ] |= 0x0d;        break;      case 'E':      case 'e':        pBinArray[ o ] |= 0x0e;        break;      case 'F':      case 'f':        pBinArray[ o ] |= 0x0f;        break;      default:        return -1;    }    i += 2;    o++;  }  return o;}

 

转载地址:http://ewhgx.baihongyu.com/

你可能感兴趣的文章
ArrayBlockingQueue源码解析(2)
查看>>
哈希表
查看>>
成为跨平台的C++程序员 - C++ - language - ITeye论坛
查看>>
让CKEDITOR支持JSP上传
查看>>
SQL FOR XML子句的各种用法
查看>>
HDU 2795 Billboard
查看>>
[原创]ExtAspNet秘密花园(十三) — 布局之行布局和列布局
查看>>
了解JavaScript中的内置对象
查看>>
struts2 获取request、session的方法
查看>>
使用Gitorious搭建私有代码仓库
查看>>
Git工程迁移方法总结(命令行) .(转载)
查看>>
多媒体开发之rtp 打包发流---同网段其他机子sdp 播放不了
查看>>
Android WebView 获取网页的标题
查看>>
PetaPoco利用ODP.NET Managed Driver连接Oracle
查看>>
基础研究,应用研究,开发研究的定义特点及区别
查看>>
Redis常用命令入门4:集合类型
查看>>
021医疗项目-模块二:药品目录的导入导出-介绍poi类
查看>>
带线性阻力的抛射模型
查看>>
[SQL] SQL 基础知识梳理(五) - 复杂查询
查看>>
SSH公钥认证
查看>>