C语言学习第21篇---轻松记住大端小端的含义 单片机验证

之前看过一个经典的解释:大端即高尾端,小端即低尾,基本看图就记住了

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); //转发字符串
  }
}