二进制数据与字符串之间的转换
2012-12-21 14:26
302 查看
//函数名:GsmByte2String //描述:二进制数据转换为字符串,如二进制//数:0x0A 0x6B 0xFF 0xB6 0x12 转为//字符串:“0A6BFFB612” //参数:const unsigned char* pSrc 二进制数据 // char* pDst 转换后的目标字符串 // int nSrcLength 二进制数据长度 //返回值:转换完之后,字符串的长度 int GsmByte2String(const unsigned char* pSrc,char* pDst,int nSrcLength) { const char tab[]="0123456789ABCDEF"; for(int i=0;i<nSrcLength;i++) { *pDst++ = tab[*pSrc>>4]; *pDst++=tab[*pSrc & 0x0f]; pSrc++; } *pDst = '\0'; return nSrcLength*2; }
unsigned char convertChar2Byte(char psrc) { unsigned char tempbyte = 0x00; if(psrc>='0' && psrc<='9') { tempbyte = psrc-'0'; } else if(psrc=='A' || psrc=='a') { tempbyte = 0x0A; } else if(psrc=='B' || psrc=='b') { tempbyte = 0x0B; } else if(psrc=='C' || psrc=='c') { tempbyte = 0x0C; } else if(psrc=='D' || psrc=='d') { tempbyte = 0x0D; } else if(psrc=='E' || psrc=='e') { tempbyte = 0x0E; } else if(psrc=='F' || psrc=='f') { tempbyte = 0x0F; } return tempbyte; } unsigned char convertTwoChar2Byte(char hchar,char lchar) { unsigned char tempbyte = 0x00; unsigned char hbyte = convertChar2Byte(hchar); unsigned char lbyte = convertChar2Byte(lchar); tempbyte = tempbyte | hbyte; tempbyte = tempbyte<<4; tempbyte = tempbyte | lbyte; return tempbyte; } //函数名:gsmString2Bytes //描述:字符串转换成二进制数据 如字符串:“0A6BFFB612” 转为二进制数据:0x0A 0x6B 0xFF 0xB6 0x12 //参数:const char* pSrc 字符串数据 // unsigned char* pDst 转换之后的二进制数据 // nSrcLength 字符串长度 //返回值:转换完之后,二进制数据个数 int gsmString2Bytes(const char* pSrc,unsigned char* pDst,int nSrcLength) { for(int i=0;i<nSrcLength;i=i+2) { unsigned char thebyte = convertTwoChar2Byte(pSrc[i],pSrc[i+1]); *pDst++ = thebyte; } return nSrcLength/2; }
unsigned char convertChar2Byte(char psrc) { unsigned char tempbyte = 0x00; if(psrc>='0' && psrc<='9') { tempbyte = psrc-'0'; } else if(psrc=='A' || psrc=='a') { tempbyte = 0x0A; } else if(psrc=='B' || psrc=='b') { tempbyte = 0x0B; } else if(psrc=='C' || psrc=='c') { tempbyte = 0x0C; } else if(psrc=='D' || psrc=='d') { tempbyte = 0x0D; } else if(psrc=='E' || psrc=='e') { tempbyte = 0x0E; } else if(psrc=='F' || psrc=='f') { tempbyte = 0x0F; } return tempbyte; } unsigned char convertTwoChar2Byte(char hchar,char lchar) { unsigned char tempbyte = 0x00; unsigned char hbyte = convertChar2Byte(hchar); unsigned char lbyte = convertChar2Byte(lchar); tempbyte = tempbyte | hbyte; tempbyte = tempbyte<<4; tempbyte = tempbyte | lbyte; return tempbyte; } //函数名:gsmString2Bytes //描述:字符串转换为二进制数据,如字符串:“0A6BFFB612” 转为 二进制数据:0x0A 0x6B 0xFF 0xB6 0x12 //参数:const char* pSrc 字符串数据 // unsigned char* pDst 转换完的二进制数据 // int nSrcLength 字符串长度 //返回值:转换完之后,二进制数据的个数 int gsmString2Bytes(const char* pSrc,unsigned char* pDst,int nSrcLength) { for(int i=0;i<nSrcLength;i=i+2) { unsigned char thebyte = convertTwoChar2Byte(pSrc[i],pSrc[i+1]); *pDst++ = thebyte; } return nSrcLength/2; }
相关文章推荐
- 二进制数据和字符串之间转换
- 无法在 unicode 和非 unicode 字符串数据类型之间转换。
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- 无法在 unicode 和非 unicode 字符串数据类型之间转换。
- C#数据类型转换——数值字符串和数值之间的转换
- java基本数据类型、对应的封装类以及字符串之间的相互转换
- wfp数据类型转换--Uint16转二进制字符串
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- java 基本数据类型、包装类、字符串、数组之间的类型转换
- 【java基础】在Java中实现基本数据类型与字符、字符串之间的转换
- 浅谈二进制、十进制、十六进制、字符串之间的相互转换
- 将二进制字符串转换为二进制数据
- IOS中常用的字符串、十进制、二进制、十六进制之间互相转换及简单算术和
- java:实现字符串到二进制字符、16进制字符、unicode字符、base64字符之间的转换
- java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
- 二进制数据与对象之间互相转换
- C#二进制与字符串之间的相互转换