Hi NeuralC,
the problem you mention (maximum number of samples in order to assure no saturation) is the subject I refered to when telling that you sould have the caution to use an accumulator long enough. If you are programming in C, use a variable of type long for the accumulator (be sure that your compiler uses 32-bits for long variables). If you use assembly language, use multiple-precision (24 or 32 bit) arithmetic.
Division is no problem if the divisor is a power of two: in this case the division is just an arithmetic shift (e.g. divide by 64 shifting 6 places at right). In order to preserve precision, you can perform rounding (rather than truncation) summing 1 (increment by unity) the accumulator before the last shift.
Even if the rectified waveform has 100 Hz frequency, it is preferable to sample a complete 50Hz period (or an integer number of them) because the two half-cycles don't have to be identical.
For example, if your sampling frequency is 6400 Hz, in one cycle of 50 Hz (20 ms) you have to sum 128 samples. After summation, the accumulator contains the average of the waveform multiplied by 128, and if you want this result in the same scale factor than the original signal you will shift it 7 places at right. But depending on what you are going to do with this result, maybe you need a different scale factor, so maybe you have to apply a different number of shifts.
You don't need to average a measurement with the previous one from cycle to cycle. You can do that, of course, and you will get a different filtering characteristic.
I hope this help. Stay connected.
Z