Correcting the Normalization Shift of Redundant Binary Representations
An important problem in the realization of floating-point subtraction is the identification of the position of the first nonzero digit in a radix-represented number, since the significand usually is to be represented left-normalized in the part of the word(s) allocated for representing its value. There are well-known log-time algorithms for determining this position for numbers in nonredundant representations, which may also be applied to suitably (linear-time) transformed redundant representations. However, due to the redundancy in the latter case, the position thus determined may need a correction by one. When determination of the shift amount is to be performed in parallel with conversion to nonredundant representation (the subtraction), it must be performed on the redundant representation. This is also the case when the significand is to be retained in a redundant representation until the final rounding. This paper presents an improved algorithm for determining the need for a correction of the normalization shift amount, which can be run in parallel with the algorithm finding the "approximate" position.
normalization floating-point addition leading-one determination (lod) leading-zero anticipation (lza)