}**實現:
void hextostr(char *pszdest, char *pbsrc, int nlen)
pszdest[nlen * 2] = '\0';
}
或者
u16 hex2stringarray (u8 *psrc, u16 srclen, u8 *pobj)
*(pobj + i * 2) = '\0';return (i * 2);
}
效果:十六進製制:0x13 0xaa 0x02轉為字串:」13aaa2」
**實現:
第一種,如果帶負號 這個就是atoi函式的實現:
int my_atoi(const char *str)
if (*str == '-') //第乙個字元若是『-』,說明可能是負數
else if (*str == '+') //第乙個字元若是『+』,說明可能是正數
//第乙個字元若不是『+』『-』也不是數字字元,直接返回0else if (*str >= '9' || *str <= '0')
//當遇到非數字字元或遇到『\0』時,結束轉化while (*str != '\0' && *str <= '9' && *str >= '0')
if (flag == 0) //負數的情況
return value;
}
效果:字串:」-123」 轉為 -123
第二種,如果不帶負號:
void strtodec(uint32_t *pbdest, char *pbsrc, int nlen)
}
效果:字串:」123」 轉為 123
第三種:包含轉為浮點數:
//m^n函式
//返回值:m^n次方.
u32 nmea_pow(u8 m,u8 n)
//str轉換為數字,以','或者'*'結束
//buf:數字儲存區
//dx:小數點位數,返回給呼叫函式
//返回值:轉換後的數值
int nmea_str2num(u8 *buf,u8*dx)
//是負數if(*p==','||(*p=='*'))break;//遇到結束了if(*p=='.')//遇到小數點了else if(*p>'9'||(*p
if(mask&0x01)flen++;else ilen++;
p++;
}if(mask&0x02)buf++; //去掉負號for(i=0;i if(flen>5)flen=5; //最多取5位小數
*dx=flen; //小數點位數for(i=0;i
res=ires*nmea_pow(10,flen)+fres;if(mask&0x02)res=-res; return res;
}
效果:字串:」123.456」 先轉為 123456,然後除以1000得到123.456
**實現:
如果只是單個十進位制轉字串,使用sprintf函式就可以了。
如果是十進位制陣列:
u16 dectostr (u8 *psrc, u16 srclen, u8 *pobj)
*(pobj + i * 2) = '\0';return (i * 2);
}
效果:十進位制陣列13 14轉為字串「1314」
舉個栗子:ascii碼裡
這裡寫描述 字元『a』 , 乙個位元組8bit ,即u8 十六進製制為 0x41 二進位制為 0100 0001
而對應的十進位制為 65 整型65,4個位元組32bit,即u32 十六進製制為 0x41 二進位制為 0000 0000 0000 0000 0000 0000 0100 0001
將u32數轉換成u8陣列
注意:這裡是字元陣列,不是字串
字串是以空字元(\0)結尾的char陣列
void u32tou8array(uint8_t *buf, uint32_t u32value)
效果:整型 50 轉字元陣列
u8陣列轉u32
void u8arraytou32(uint8_t *buf, uint32_t *u32value)
效果:字元陣列 轉為整型 50
最後就是大小端問題了。stm32 預設是小端模式的,那麼該如何轉為大端?
1、轉為大端
為大端:
ppack[0] = (u8)((len >> 8) & 0xff);
ppack[1] = (u8)(len & 0xff);
為小端:
ppack[0] = (u8)(len & 0xff);
ppack[1] = (u8)((len >> 8) & 0xff);
效果:len為資料型別為 u16(short),比如 0x11 0x22,轉為u8(usigned char)陣列。
大端為:
ppack[0] (0x11 )
ppack[1] (0x22)
小端為:
ntc熱敏電阻測溫原理,電路設計以及程式設計
八個經驗搞定開關電源pcblayout
搞技術,一定不要眼高手低
小船說翻就翻:硬體工程師vs軟體工程師
c語言常用的幾個函式
strcpy函式 2 如何給字串進行賦值 a 字串不能直接賦值 b 目前而言。給字串賦值的方法是通過strcpy函式 c strcpy函式需要string.h的標頭檔案的支援 d 在使用strcpy函式時不能把大串賦值給小串 格式 strcpy 字串1,字串2 相當於是字串1 字串2 strlen函...
C語言字串幾個常用函式小結
字串處理函式 1 將格式化資料寫入字串 sprintf int sprintf char buffer,const char format,將資料列印到buffer中 例如 char result 100 int num 24 sprintf result,d num 例如 char string ...
c語言字串 數字轉換函式大全轉
atof 將字串轉換成浮點型數 atoi 將字串轉換成整型數 atol 將字串轉換成長整型數 strtod 將字串轉換成浮點數 strtol 將字串轉換成長整型數 strtoul 將字串轉換成無符號長整型數 toascii 將整型數轉換成合法的ascii 碼字元 toupper 將小寫字母轉換成大寫...