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