C语言学习第21篇---轻松记住大端小端的含义 单片机验证
之前看过一个经典的解释:大端即高尾端,小端即低尾,基本看图就记住了
实际使用中使用单片机进行验证:
int main(void)
{
uint8_t ch;
uint8_t i,data[8];
uint32_t data_32=0x33445566;
/* 复位所有外设,初始化Flash接口和系统滴答定时器 */
HAL_Init();
/* 配置系统时钟 */
SystemClock_Config();
/* 初始化串口并配置串口中断优先级 */
MX_DEBUG_USART_Init();
/* 调用格式化输出函数打印输出数据 */
printf("Hello world!!!\n");
memcpy(data,&data_32,sizeof(uint32_t));
for(i=0;i<sizeof(uint32_t);++i)
{
printf("data[[%d]=0x%X\n",i,data[i]);
}
if(data[0]==(data_32&0x000000FF)) //小端低尾端
printf("》》编译环境为小端模式\n");
else if(data[0]==(data_32&0xFF000000)) //大端 高尾端,从左到右放置
printf("》》编译环境为大端模式\n");
else
printf("》》程序运行出错\n");
/* 无限循环 */
while (1)
{
ch=getchar(); //获取字符串
HAL_UART_Transmit(&husart_debug,&ch,1,0); //转发字符串
}
}