Floating Point Formats

	IEEE 4 byte real

	31 30	 23 22			      0
	┌─┬────────┬──────────────────────────┐
	│s│ 8 bits │msb   23 bit mantissa  lsb│
	└─┴────────┴──────────────────────────┘
	 │	│		 └────────────────  mantissa
	 │	└────────────────────────────────  biased exponent (7fh)
	 └─────────────────────────────────────  sign bit

	IEEE 8 byte real

	63 62	   52 51				  0
	┌─┬──────────┬────────────────────────────────────┐
	│s│  11 bits │msb	 52 bit mantissa       lsb│
	└─┴──────────┴────────────────────────────────────┘
	 │	│		 └────────────────  mantissa
	 │	└────────────────────────────────  biased exponent (3FFh)
	 └─────────────────────────────────────  sign bit

	Microsoft 4 byte real

	31     24 23 22			      0
	┌────────┬─┬──────────────────────────┐
	│ 8 bits │s│msb  23 bit mantissa   lsb│
	└────────┴─┴──────────────────────────┘
	     │	  │		 └────────────────  mantissa
	     │	  └────────────────────────────  sign bit
	     └──────────────────────────────  biased exponent (81h)

	Microsoft 8 byte real (see note below)

	63    56 55 54 				       0
	┌───────┬─┬────────────────────────────────────┐
	│ 8bits │s│msb		52 bit mantissa	    lsb│
	└───────┴─┴────────────────────────────────────┘
	    │	 │		      └────────────  mantissa
	    │	 └─────────────────────────────  sign bit
	    └───────────────────────────  biased exponent (401h, see below)

	IEEE 10 byte real (temporary real)

	79 78	    64 63 62					 0
	┌─┬───────────┬─┬────────────────────────────────────────┐
	│s│  15 bits  │1│msb	      63 bit mantissa	      lsb│
	└─┴───────────┴─┴────────────────────────────────────────┘
	 │	│      │		    └─────  mantissa
	 │	│      └────────────────────────  first mantissa bit
	 │	└─────────────────────────────	biased exponent (3FFFh)
	 └──────────────────────────────────  sign bit

	Turbo Pascal 6 byte real

	47     40 39 38					0
	┌────────┬─┬────────────────────────────────────┐
	│ 8 bits │s│msb		39 bit mantissa	     lsb│
	└────────┴─┴────────────────────────────────────┘
	     │	  │		     └────────────  mantissa
	     │	  └─────────────────────────────  sign bit
	     └────────────────────────────────  biased exponent (80h)

	Microsoft Fortran Complex number
	┌──────────────────────────┬─────────────────────────────┐
	│   Float Real component   │  Float Imaginary component  │
	└──────────────────────────┴─────────────────────────────┘
	(each component is either 8 or 16 byte IEEE real)


	- sign bit representation:  0 is positive  and	1 is negative
	- in all float formats except the IEEE 10 byte real, the
	  mantissa is stored without most significant bit; since
	  the state of this bit is known to be set, it is not
	  included and the exponent is adjusted accordingly
	- all formats use binary float representation
	- memory representation uses 80x86 reverse byte/word order.
	- Microsoft languages use the IEEE real formats;  BASIC is the
	  only normal user of the Microsoft float format
	- Microsoft 8 byte real format has not been verified;  several
	  Microsoft publications show an 8 bit exponent instead of 11 bits
	  and state the BIAS is 401h;  the discrepancy is that 8 bits can't
	  hold the value 401h (requires 11 bits)


	True exponent is the exponent value minus the following bias:

	81h for Microsoft 4 byte real
	401h for Microsoft 8 byte real
	7Fh for IEEE 4 byte real
	3FFh for IEEE 8 byte real
	80h for Turbo Pascal 6 byte real

	     Size		   Range	     Significant digits

	4 byte real	  8.43x10E-37 to 3.37x10E38	    6-7
	8 byte real	 4.19x10E-307 to 1.67x10E308	   15-16
	10 byte real	 3.4x10E-4932 to 1.2x10E4932	     19


	- see	dmsbintoieee()   dieeetomsbin()   NUMERIC RANGES