詳解C語言常用的一些轉換工具函式
1、字串轉十六進位制
程式碼實現:
2、十六進位制轉字串
程式碼實現:
或者
效果:十六進位制:0x13 0xAA 0x02轉為字串:”13AAA2”
3、字串轉十進位制
程式碼實現:
第一種,如果帶負號 這個就是atoi函式的實現:
效果:字串:”-123” 轉為 -123
第二種,如果不帶負號:
效果:字串:”123” 轉為 123
第三種:包含轉為浮點數:
效果:字串:”123.456” 先轉為 123456,然後除以1000得到123.456
4、十進位制轉字串
程式碼實現:
如果只是單個十進位制轉字串,使用sprintf函式就可以了。
如果是十進位制陣列:
效果:十進位制陣列13 14轉為字串“1314”
5、u8、u32轉換
舉個栗子: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陣列
效果:整型 50 轉字元陣列 {‘\0','\0','2'}
u8陣列轉u32
voidU8ArrayToU32(uint8_t*buf,uint32_t*u32Value) { *u32Value=(buf[0]<<24)+(buf[1]<<16)+(buf[2]<<8)+(buf[3]<<0); }
效果:字元陣列 {‘\0','2'}轉為整型 50
6、大端小端
最後就是大小端問題了。STM32 預設是小端模式的,那麼該如何轉為大端?
1、轉為大端
效果:len為資料型別為 u16(short),比如 0x11 0x22,轉為u8(usigned char)陣列。
大端為:
小端為:
到此這篇關於詳解C語言常用的一些轉換工具函式的文章就介紹到這了,更多相關C語言轉換工具函式內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!