C语言常用的一些转换工具函数!
2021-08-03 16:56
标签:str sig 一个 模式 hex signed 十六进制 == 说明 1、字符串转十六进制 代码实现: void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i 9) s1 -= 7; s2 = toupper(h2) - 0x30; if (s2 > 9) s2 -= 7; pbDest[i] = s1*16 + s2; }} 2、十六进制转字符串 代码实现: void HexToStr(char *pszDest, char *pbSrc, int nLen){ char ddl, ddh; for (int i = 0; i 57) ddh = ddh + 7; if (ddl > 57) ddl = ddl + 7; pszDest[i * 2] = ddh; pszDest[i * 2 + 1] = ddl; } pszDest[nLen * 2] = ‘\0‘;} 或者 u16 Hex2StringArray (u8 *pSrc, u16 SrcLen, u8 *pObj){ u16 i=0; for(i=0; i= ‘9‘ || *str 10) *pbDest = 0; tmp = 1; *pbDest = 0; for (i=nLen-1; i>=0; i--) { *pbDest += tmp*(*(pbSrc+i)-‘0‘); tmp = tmp*10; }} 效果:字符串:”123” 转为 123 第三种:包含转为浮点数: //m^n函数//返回值:m^n次方.u32 NMEA_Pow(u8 m,u8 n){ u32 result=1; while(n--)result*=m; return result;}//str转换为数字,以‘,‘或者‘*‘结束//buf:数字存储区//dx:小数点位数,返回给调用函数//返回值:转换后的数值int NMEA_Str2num(u8 *buf,u8*dx){ u8 *p=buf; u32 ires=0,fres=0; u8 ilen=0,flen=0,i; u8 mask=0; int res; while(1) //得到整数和小数的长度 { if(*p==‘-‘){mask|=0X02;p++;}//是负数 if(*p==‘,‘||(*p==‘*‘))break;//遇到结束了 if(*p==‘.‘){mask|=0X01;p++;}//遇到小数点了 else if(*p>‘9‘||(*p> 16) & 0xFF); buf[2] = ((u32Value >> 8) & 0xFF); buf[3] = (u32Value & 0xFF);} 效果:整型 50 转字符数组 {‘\0’,’\0’,’\0’,’2’} u8数组转u32 void U8ArrayToU32(uint8_t *buf, uint32_t *u32Value){ *u32Value = (buf[0]
上一篇:自学java第三天