发布于 2005-11-11 12:55:20
0楼
移一位相当于干什么???相当于除以2嘛!!!
我的理解是这样的:
把PIW256至PIW814存放到DB31.DBW0至DB31.DBW558之中....但是它的存放规则是:把该次采样和上一次采样求和,然后除以二,这样相当于取两次相邻采样的平均值.....但是在你的程序中它的处理如下:比如PIW256吧...他是先采样PIW256,再右移一位(相当于除以二),再把DB31.DBW0(注意在转换之前它里面存放的是PIW256的前值)右移一位(也相当于除以二),再相加..
那为什么要先除以二再相加呢??? 而不是先相加再除以二呢??? 因为两个整数相加,可能会溢出!!! 而你先除以二再相加的话,则不会出现这种情况( 虽然先加再除的方法要少一个步骤,但是没有办法那样做)
明白?
I can do it