|Well in any case, you may wish to consider arranging your data vertically |and adding 3 more bits of resolution |Now in your case, if you wish to extend the data's dynamic range by three |more bits you'll need (50 samples) * (11bits/sample) = 550 bits. The first |48 samples can be grouped together in sets of 8 each and would require 528 |bits or 66 bytes. The last 2 samples would be grouped together and would |require an additional 11 bytes if they were vertical. However, it would |make sense to keep these horizontal and use only 4 bytes. I think a slightly easier approach would be to keep the bottom 8 bits of each 11-bit total in "horizontal" format and just put the top 3 bits in vertical format, at least for the first 48 of them. The two oddballs you could store horizontally, optionally packing them both into a byte. This would yield a total of 48 bytes for storing LSB's and 18 bytes for storing 48 sets of MSB's, plus one for the oddballs; total 67. Note that your "vertical" math now only needs to be an increment-if-carry, rather than an add. Another method, somewhat alluded to above, would be to store MSB's horizontally, but packed two per byte. This would need a total of 75 bytes; more than the above, but less than 100.