32位int和8位字符數組互相轉換


在學習STM32的Flash讀寫時,遇到需要把uint32_t類型的長度數據存儲在Flash中,而現有的Flash寫入函數需要讀取uint8_t的字符數組。

用8位數組以小端模式存儲

#include <iostream>
using namespace std;

int main()
{
	unsigned int APP_len=0x12345678;
	unsigned char data_length[4]={0,0,0,0};
	data_length[3]|=APP_len>>24; //12
	data_length[2]|=APP_len>>16; //34
	data_length[1]|=APP_len>>8;  //56
	data_length[0]|=APP_len;     //78
	for(int i=0;i<4;i++)
	printf("\r\n%x\r\n",data_length[i]);
	unsigned int Flash_APP_len=0;
	for(int i=0;i<4;i++)
	{
		uint8_t tmp_len=data_length[i];
		Flash_APP_len |=tmp_len<<(8*i);
	}
	printf("\r\n%#x\r\n",Flash_APP_len);
   	return 0;
}

結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM