//char*转16进制
DWORD HEXS(char *decString)
{DWORD hexValue=0;DWORD sl=0;BOOL isWhile=FALSE;DWORD idx=0;char str[256];BYTE ct=0;sl=strlen(decString);if((sl>0) && (sl<256))isWhile=TRUE;strcpy(str,decString);idx=0;while(isWhile){ct=(BYTE)(str[idx]);switch(ct){case 48: // "0"hexValue=hexValue<<4;hexValue+=0x0;break;case 49: // "1"hexValue=hexValue<<4;hexValue+=0x01;break;case 50: // "2"hexValue=hexValue<<4;hexValue+=0x02;break;case 51: // "3"hexValue=hexValue<<4;hexValue+=0x03;break;case 52: // "4"hexValue=hexValue<<4;hexValue+=0x04;break;case 53: // "5"hexValue=hexValue<<4;hexValue+=0x05;break;case 54: // "6"hexValue=hexValue<<4;hexValue+=0x06;break;case 55: // "7"hexValue=hexValue<<4;hexValue+=0x07;break;case 56: // "8"hexValue=hexValue<<4;hexValue+=0x08;break;case 57: // "9"hexValue=hexValue<<4;hexValue+=0x09;break;case 65: // "A"hexValue=hexValue<<4;hexValue+=0x0a;break;case 97: // "a"hexValue=hexValue<<4;hexValue+=0x0a;break;case 66: // "B"hexValue=hexValue<<4;hexValue+=0x0b;break;case 98: // "b"hexValue=hexValue<<4;hexValue+=0x0b;break;case 67: // "C"hexValue=hexValue<<4;hexValue+=0x0c;break;case 99: // "c"hexValue=hexValue<<4;hexValue+=0x0c;break;case 68: // "D"hexValue=hexValue<<4;hexValue+=0x0d;break;case 100: // "d"hexValue=hexValue<<4;hexValue+=0x0d;break;case 69: // "E"hexValue=hexValue<<4;hexValue+=0x0e;break;case 101: // "e"hexValue=hexValue<<4;hexValue+=0x0e;break;case 70: // "F"hexValue=hexValue<<4;hexValue+=0x0f;break;case 102: // "f"hexValue=hexValue<<4;hexValue+=0x0f;break;default: //unknown charisWhile=FALSE;break;}idx++;if(idx>=sl)isWhile=FALSE;}return  hexValue;
}
//Cstring转16进制Cstring
CString ConvertCStringoHex(CString Data)
{   //char*转为wchar_t*char* CStr = Data.GetBuffer( Data.GetLength() );size_t len = strlen(CStr) + 1;size_t converted = 0;wchar_t* a = (wchar_t*)malloc(len*sizeof(wchar_t)); mbstowcs_s(&converted, a, len, CStr, _TRUNCATE);//CString转换成char[] int nLen = WideCharToMultiByte( CP_ACP, 0, a, -1, NULL, 0, NULL, NULL );  if (nLen == 0)  {  return NULL;  }  char* pResult = new char[nLen];  char tagChar[2048];  WideCharToMultiByte( CP_ACP, 0, a, -1, pResult, nLen, NULL, NULL );  strncpy( tagChar,pResult , sizeof(tagChar));  //转换成hex  CString sResult="";  int nLoop=0;  while(tagChar[nLoop]!='\0')  {  static const char *hex="0123456789ABCDEF";  if(tagChar[nLoop]<127&&tagChar[nLoop]>0)  {  //sResult += '0';  //sResult += '0';  unsigned char chHexA = hex[((unsigned char)(tagChar[nLoop]) >> 4) & 0x0f];  unsigned char chHexB = hex[(unsigned char)(tagChar[nLoop]) & 0x0f];  sResult += (char)chHexA;  sResult += (char)chHexB;  nLoop++;  }  else  {  unsigned char chHexA = hex[((unsigned char)(tagChar[nLoop]) >> 4) & 0x0f];  unsigned char chHexB = hex[(unsigned char)(tagChar[nLoop]) & 0x0f];  sResult += (char)chHexA;  sResult += (char)chHexB;  if(tagChar[++nLoop]=='\0') break;  sResult+= hex[((unsigned char)(tagChar[nLoop]) >> 4) & 0x0f];  sResult+=hex[(unsigned char)(tagChar[nLoop]) & 0x0f];  nLoop++;  }  }  return sResult;  } 
//HexChar函数的功能是将16进制字符由ASCII码转为相应大小的16进制数
char HexChar(char c)
{if((c>='0')&&(c<='9'))return c-'0';//将?0-9的??数?y字??字??符¤?转?a为a十??六?¨?进?制?格?式??else if((c>='A')&&(c<='F'))return c-'A'+10;//将?A-F的??字??符¤?转?a为a十??六?¨?进?制?格?式??例¤y如¨?字??符¤?'C'-'A'+10=12=0x0Celse if((c>='a')&&(c<='f'))return c-'a'+10;//将?a-f的??字??符¤?转?a为a十??六?¨?进?制?格?式??elsereturn 0x10;
}//Str2Hex函数的功能则是将如“66 03 ...”形式的字符串以空格为间隔转换为对应的16进制数
//并存放在BYTE型(typdef unsigned char BYTE)数组中,
//data数组作为发送缓冲数组写入串口即可。
int Str2Hex(CString str, BYTE *data)
{int t,t1;int rlen=0,len=str.GetLength();if(len==1){char h=str[0];t=HexChar(h);data[0]=(BYTE)t;rlen++;}//data.SetSize(len/2);for(int i=0;i<len;){char l,h=str[i];if(h==' '){i++;continue;}i++;if(i>=len)break;l=str[i];t=HexChar(h);t1=HexChar(l);if((t==16)||(t1==16))//判D断?为a非¤?法¤?§的??16进?制?数?ybreak;elset=t*16+t1;i++;data[rlen]=(BYTE)t;rlen++;}return rlen;
}

16进制、Cstring、char*类型转换相关推荐

  1. 2字节char转16进制unsigned char或者int

    在C语言中,常常需要将txt文件转换成bin文件,所以需要将两字节的字符,转换成16进制的unsigned char类型.有时也会将int型转换成两字节的char,还原时也需要转换. /*! @Bri ...

  2. Ascii码 、16进制与 char

         对于一个非计算机专业出身的人,以前只知道计算机中所有的数据都是以二进制形式进行存储,计算,通信的.但是人类文明中,主要的信息展现以文本的形式展现的.如果使用内存中的0和1来表示文本一直都是一 ...

  3. 将16进制unsigned char数组转换成整数

    /** * 将unsigned char数组转换成long long数值* {0x00 0x00 0x20 0x00}转换之后得到8192* * @param str 数组 * @param len ...

  4. 加密解密基础问题:字节数组和(16进制)字符串的相互转换

    在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 by ...

  5. 加解密后字节数组和(16进制)字符串的相互转换问题

    前面几篇博客简单归纳了Android中有涉及到的编码和加解密相关的问题,在这里想再补充下加密解密过程中遇到的字节数组和字符串的转换问题.前面博客中包含了转换的代码,由于这个属于所有加解密共性的问题,所 ...

  6. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别

    在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...

  7. 把16进制转换为ascii字符c语言,ASCII转16进制C语言

    满意答案 u2gseftj278 推荐于 2016.03.01 采纳率:56%    等级:11 已帮助:14340人 以前引别人的,自己懒得再写了呵呵.原理就是这样的,你可以直接用的 //函 数 名 ...

  8. 字符串16进制数字转换到Ascll字符串

    16进制数字转换到Ascll的原理也比较简单,由于unsignal char是8位数据 (这里用unsignal char的原因是表示的数字大小为0-255,用16进制数字FF表示) 可以包含2位16 ...

  9. c语言ascii码字符串转16进制,ASCII转16进制C语言

    满意答案 露露JJA 推荐于 2017.11.26 采纳率:59%    等级:7 已帮助:710人 以前引别人的,自己懒得再写了呵呵.原理就是这样的,你可以直接用的 //函 数 名:AscToHex ...

最新文章

  1. hfss怎么看s参数的反射系数_压敏电阻尺寸参数应该怎么看?
  2. 动物界的再生一个故事
  3. 三分钟掌握PHP操作数据库
  4. 前端学习(2351):text组件的使用
  5. 信息学奥赛一本通 1970:【15NOIP普及组】扫雷游戏 | OpenJudge NOI 1.8 14:扫雷游戏地雷数计算 | 洛谷 P2670 [NOIP2015 普及组] 扫雷游戏
  6. java获取applicationcontext_SpringBoot获取ApplicationContext
  7. bzoj3173: [Tjoi2013]最长上升子序列(fhqtreap)
  8. linux时间调整为dst,禁用Linux中的夏令时(DST)更改
  9. 多进程|多线程的不同应用场景:Python还是C
  10. Castle动态代理拦截
  11. [SDOI2009] HH去散步 (矩阵乘法)
  12. (附源码)springboot电子阅览室app 毕业设计 016514
  13. java基础app开发教程_安卓app开发基础入门
  14. 项目新增需求确认单(模板)
  15. 新旧身份证合法性验证及相互转换算法(一):关于中国居民身份证的常识
  16. java compar_Java中Comparable和Comparator
  17. 基于Open CV的植物图像分类识别项目
  18. centOS 7 安装 CUPS 打印服务器,安装映美 FP-730K打印机共享
  19. python常用函数库-Python常用库大全及简要说明
  20. android去掉odex

热门文章

  1. z中国农产品流通市场运行态势与盈利前景预测报告2022-2027年
  2. java线程-从生产者和消费者模型说起
  3. 游戏原来也可以严肃?——严肃游戏及在中国的应用前景
  4. 狗都能看懂的变化检测网络Siam-NestedUNet讲解——解决工业检测的痛点
  5. 基于微信小程序的校园二手物品交易平台的设计与实现
  6. 外媒评选出来的中国五大人工智能(AI) 公司
  7. 全球及中国线性电位器行业研究及十四五规划分析报告
  8. nii与nii.gz格式的关系
  9. 高中计算机会考怎么考,会考通过需多少分
  10. 判断字符串中是否具有唯一字符