当前位置: 代码迷 >> 单片机 >> Keil中char类型的输出有关问题
  详细解决方案

Keil中char类型的输出有关问题

热度:90   发布时间:2016-04-28 16:23:48.0
Keil中char类型的输出问题
#include <at89x52.h>
  #include <stdio.h>
  main()
  {unsigned   char   i=0x55;
  SCON=0x10;
  TI=1;                                                             //用方式0发送
  printf( "i=0x%x\n ",i);
  while(1);
  }

本来输出应该是0x55,但是keil中输出的却是0x5500,多出两个00,不知道是什么问题,是不是bug?bug是怎么造成的?

把char类型改成int后,输出正常!

------解决方案--------------------
有可能是printf的隐式转换...

把你传入的8位 转成了16位的值进行输出
------解决方案--------------------
printf( "i=0x%bx\n ",i);
keil c的printf跟ansi c的printf不太一样。如果数据是8位的话,需要加上b。
  相关解决方案