站长资讯网
最全最丰富的资讯网站

C语言的赋值兼容

 

  u16 adcx;float temp;while(1)

  { adcx=Get_Adc(ADC_CH0);LCD_ShowNum(156,130,adcx,4,16);//显示ADC的值temp=(float)adcx*(3.3/4096);adcx=temp;LCD_ShowNum(156,150,adcx,1,16);//显示电压值temp-=adcx;temp*=1000;LCD_ShowNum(172,150,temp,3,16);LED0=!LED0;delay_ms(250);}如上程序所示,我当时觉得程序有问题,因为一个float型的temp赋值给了整型adcx.其实这样是可以的。

  temp赋值给adcx,最终adcx的值是temp取整后的数值,而且temp的值不会发生改变。

  赋值兼容的原则“就左不就右”

  如果float a,int b;

  a=2; b=2.037;

  则最后的结果是a=2.000,b=2;

  上述例子很好的利用了这一特性进行了ad采样时的显示数据的问题。

  先把采样值temp的整数部分赋值给adcx,通过显示函数出来

  然后temp-adcx从而得到小数部分,小数部分乘以1000,变成整数从而再通过显示函数显示出来

 

赞(0)
分享到: 更多 (0)

网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号