r***@gmail.com
2020-05-12 12:09:44 UTC
Hi,
I'm not quite sure, if this is the proper newsgroup, so if
this is the wrong place for my querry, please be patient and don't
blame me. Thank you.
Recently I ran into the IBM 360/370 floating point format,
which is quite unusual to me. It uses a sign bit S, a 7-bit
characteristic Ch and a 32-bit binary represented fraction part F.
The exponent is exp = Ch-64. Nothing unusual so far.
Appart, the value of the number represented is 16**exp *F.
I'm rankling with the choice to use hex as the base for this
floating point number system instead of the conventional base 2.
Why 16**exp *F rather than 2**exp *F?
Can you give any reasons like range or system design that
might be behind this decision?
The reason was speed.I'm not quite sure, if this is the proper newsgroup, so if
this is the wrong place for my querry, please be patient and don't
blame me. Thank you.
Recently I ran into the IBM 360/370 floating point format,
which is quite unusual to me. It uses a sign bit S, a 7-bit
characteristic Ch and a 32-bit binary represented fraction part F.
The exponent is exp = Ch-64. Nothing unusual so far.
Appart, the value of the number represented is 16**exp *F.
I'm rankling with the choice to use hex as the base for this
floating point number system instead of the conventional base 2.
Why 16**exp *F rather than 2**exp *F?
Can you give any reasons like range or system design that
might be behind this decision?
When two values are added or subtracted, one or more
high-order hex digits of the mantissa may become zero.
Normalising the mantissa requires up to 6 shifts for
single precision, and up to 14 shifts for double precision.
In the case of a binary machine having a 24-bit mantissa,
up to 23 shifts would be required, and up to 55 shifts
for double precision.