数据溢出问题。请教!
unsigned int Adc_Data_Test;Adc_Data_Test=(Adc_Data*330)/255;//Adc_Data取值在0-255;
这里比较迷糊最终结果是不可能溢出的,中间值会溢出!这个数学运算在编译的时候会产生一个临时变量存放中间结果吗?决定这个临时变量是什么类型的因素是哪个?Adc_Data_Test这个值很小,不想弄个四字节数据存取。麻烦有兴趣的老师说两句!教教新人!谢谢! 这样写试试Adc_Data_Test=(unsigned long)Adc_Data*330/255; 谢谢,好使了,这是强制转换吗?C语言没系统学习过是不行!这两天买了本C语言书,好好翻番! 可以 Adc_Data_Test=(Adc_Data*66)/51 elecompu 发表于 2013-4-4 19:34 static/image/common/back.gif
谢谢,好使了,这是强制转换吗?C语言没系统学习过是不行!这两天买了本C语言书,好好翻番! ...
的确是强制转换,可以当作中间结果是放在Adc_Data中的 旁观一下
页:
[1]