C語言 常見資料轉化函式

2021-10-08 16:24:51 字數 2260 閱讀 3586

**實現:

void strtohex(char *pbdest, char *pbsrc, int nlen)

}

**實現:

void hextostr(char *pszdest, char *pbsrc, int nlen)

pszdest[nlen * 2] = '\0';

}

或者

u16 hex2stringarray (u8 *psrc,  u16 srclen, u8 *pobj)

if (*str == '-')  //第乙個字元若是『-』,說明可能是負數

else if (*str == '+') //第乙個字元若是『+』,說明可能是正數

//第乙個字元若不是『+』『-』也不是數字字元,直接返回0

else 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<'0'))   //有非法字元

if(mask&0x01)flen++;

else ilen++;

p++;

}if(mask&0x02)buf++; //去掉負號

for(i=0;i5)flen=5;   //最多取5位小數

*dx=flen;           //小數點位數

for(i=0;i效果:字串:」123.456」 先轉為 123456,然後除以1000得到123.456

**實現:

如果只是單個十進位制轉字串,使用sprintf函式就可以了。

如果是十進位制陣列:

u16 dectostr (u8 *psrc, u16 srclen, u8 *pobj)

效果:整型 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)

小端為:

ppack[0] (0x22) 

ppack[1] (0x11)

-end-

猜你喜歡c語言過時了?扯淡!一文帶你學c語言,詳細知識點思維導圖!

測試你c語言水平的十道題,挑戰一下?

C語言常見資料型別分類

基本資料型別,做的不好僅供參考!資料型別分類大致分為三大板塊 a 基本型別 b 列舉型別 enum 空型別 void c 派生型別 a 基本型別 1 整型型別 1 基本整型 int 用整數的補碼方式存放,編譯系統分配給int型資料2個位元組或4個位元組。簡易來談就是乙個正數的補碼是此數的二進位制,如...

(六)mysql語法 常見資料函式

數學函式 round x select round 1.34 out put 不管是正數還是負數,加上絕對值之後,在填上外邊的正負號就可以了 結果 1 select round 1.34 out put 不管是正數還是負數,加上絕對值之後,在填上外邊的正負號就可以了 結果 1 select roun...

常見資料集

有幾個資料集常常聽到,但時間一長就容易混淆忘記,現記錄如下。持續更新。全稱the pascal visual object classes,也可簡稱voc。主題 目標分類 版本 該競賽現已結束 主題 識別 分割 版本 介紹 首先是每年的競賽 coco競賽從2015年開始,最初的競賽內容是detect...