From what I understand, with floating point arithmetic, shifting values up and down is important, since a floating point value essentially is an equation like 2e×m. This supposition may be supported by browsing the floating point library for the 6502, which woz written by Steve Wozniak and Ray Rankin. I can see that there are a few loops that go round and round and lsr
and lsr
, to prepare the mantissas for a straight addition, and then normalises the result which involves going round and round again, this time with asl
and rol
. Of course, if the 6502 could shift by more than 1, that would mean a reduction in the number of shifts required.
To reduce the number of shifts in this whole process, the MANIAC-II stored only four bits for the exponent, implicitly filling to the right with zeroes. This means that the mantissa will be shifted around much further at once, which will reduce the number of loop iterations. In other words, floating point on this machine is not an equation like 2e×m, it's an equation like ce×m, where c is some constant power of two. Because apparently, on vacuum tube computers it's advantageous to reduce shifting.
What about relay computers? A relay has a much slower switching speed than a transistor (not sure how this compares with vacuum tubes), so I think some effort will have gone into reducing the number of shifts/rotations, like with the MANIAC-II. Konrad Zuse's computers all did floating point in hardware. I am interested in implementation details here. Did these computers need to shift numbers up and down, like the software implementation I linked to does? If yes, do the Zuse machines take any "shortcuts" like the MANIAC-II does?