The bit-sequence for the current value is repeated often for quick reference. The other numbers are the various interpretations of the same bit-sequence.

Storage type | Bits | Minimum | Maximum | Smallest Increments |

IEEE Floating Point | 128 | -1.2e+4932 | 1.2e+4932 | 6.5e-4966 |

80 | -1.2e+4932 | 1.2e+4932 | 1.8e-4951 | |

64 | -1.8e+308 | 1.8e+308 | 4.9e-324 | |

32 | -3.4e+38 | 3.4e+38 | 1.4e-45 | |

Unsigned Binary | 128 | 0 | 3.4e+38 | 1 |

64 | 0 | 1.8e+19 (18,446,744,073,709,551,615) | 1 | |

32 | 0 | 4.3e+9 (4,294,967,295) | 1 | |

16 | 0 | 65,535 | 1 | |

8 | 0 | 256 | 1 | |

2's Compliment | 128 | -1.7e+38 | 1.7e+38 | 1 |

64 | -9.2e+18 (-9,223,372,036,854,775,808) | 9.2e+18 (9,223,372,036,854,775,807) | 1 | |

32 | -2.1e+9 (-2,147,483,648) | 2.1e+9 (2,147,483,647) | 1 | |

16 | -32,768 | 32,768 | 1 | |

8 | -128 | 127 | 1 |

Storage type | Bits | Java-Script | C | RSLogix5000 | LabView | Others coming; need to verify |

IEEE Floating Point | 128 | |||||

80 | ||||||

64 | double | double | ||||

32 | var | float | REAL | float | ||

Unsigned Binary | 128 | u128 | ||||

64 | unsigned long long | u64 | ||||

32 | unsigned long | u32 | ||||

16 | unsigned short | u16 | ||||

8 | unsigned char | u8 | ||||

2's Compliment | 128 | i128 | ||||

64 | signed long long | LINT | i64 | |||

32 | var | signed long | DINT | i32 | ||

16 | signed short | INT | i16 | |||

8 | signed char | SINT | i8 |

The most common misconception comes when someone receives a number "in hex" then wants to store it "in decimal". This usually means that the number is received as a bit-stream, either in unisgned binary or twos compliment binary. But they plan to display it later using decimal. What really happens is that the bit-stream is stored exactly as it is. It is neither hex nor decimal; it's just bits. Then, when the program should display it as decimal, it must be converted to a list of characters to display. The characters correspond to Arabic numerals using base 10.

The most common Storage Formats:

- IEEE Floating Point
- A wide variety of numbers can be stored as floating point, including
integers, fractions, and infinity. The number is stored as a set of
digits (actually binary), and the location for a decimal point.
Floating point is very common, partly because IEEE standardized some of the formats. 32-bit is commonly called single-precision, 16 half, 64 double, and 128 quad. Intel used 80-bit internally, but it isn't commonly stored in 80-bit. 80-bit is sometimes called extended.

- Unsigned Binary
- A simple set of digits in base 2. If the LSB (on the right here, but sometimes shown on the left) is '1', it has a value of 1. The next digit (bit) can have a value of 2. Each digit in turn can be worth twice as much.
- Twos Compliment Binary
- The MSB (far left here) changes the meaning of the rest of the bits. If it is '0', the rest can be treated as an Unsigned Binary. If it is '1', the value stored is negative. In this case, the value can be found the same way as for Unsigned Binary, except that the MSB counts as negative it's value instead of positive. For example, in an 8-bit number, the MSB counts as -128 instead of +128, so the bits 11111111 would be displayed as a decimal value of -1. Twos compliment numbers can be added in exactly the same way as unsigned binary--very easily. For this reason, twos compliment has dominated modern electronics.
- Ones Compliment Binary (Very rarely used)
- The MSB (far left here) determines the sign. All the other bits
determine the value. Unlike twos compliment, the MSB does not change the
value in ones compliment. So, the bits 11111111 would be displayed as a
decimal value of -127. Ones compliment numbers do not add as easily as
twos compliment numbers.
1's complement is easier to convert for display than 2's complement. It is much harder in every other way. I don't know of any application that used them.

- Binary Coded Decimal (Rarely used)
- Groups of 4 bits make up decimal digits. Displaying a BCD value in
decimal is exactly the same as showing an unsigned binary in hexidecimal.
In fact, they are the same program here. Math on BCD numbers is much
more complicated, and makes it almost unusable in modern systems.
Addition is difficult; multiplication is nearly impossible. The bits
01000011 would be displayed as 43. If you want to add 8 to it, most
electronic adders would first add 01000011 and 00001000 and get
01001011 (which would probably be displayed as 4B), then it would do a BCD
patch-up to change it to 01010001, which would correctly be displayed as
51.
BCD is almost never used in designs since about 1985. It was popular in DMMs (digital multi-meters) or VOMs (Volt-Ohm meters), and a few analog to digital converters made for DMMs, and was used in a few mainframes.

The most common Display Formats:

- Decimal Integer
- Very popular with humans.
- Hexidecimal Integer
- Mostly used when an operator wants to think in binary without getting lost in the long stream of digits. Also common for programmers.
- Octal Integer
- More popular in the past; a little harder to manage than hex, but avoids using letters as numeric values.
- Binary Integer
- Simplest way to show data, but a pain to read, copy, or type.
- Fraction
- Always decimal. The only reason to show a fraction in other bases is to explain how numbers are stored in floating point. Usually, computers don't really display numbers like 5/8. The fraction format means it has a decimal. Sometimes, even Unsigned Binary can be shown as a fraction if everyone agrees that the number is really a fraction with the decimal in a fixed location. For example, a bank may store a balance as an Unsigned Binary (integer) number of cents, but display it as dollars with a '.' stuck in the right place.
- Scientific Notation
- Like a fraction, but with an additional exponent shift. A number like '1.2e+4' can be read as '1.2 times 10 to the power of 4'. It is just another way to write '12000'. But a number like '1.2e-8' is much easier to write and read than '0.000000012'. Scientific notation is rarely used for any format but floating point.

I should probably point out there is such a thing as 'fixed point'. Fixed point mixes up both storage formats and display formats. Generally, a fixed point number doesn't know it's fixed point in storage. But it does affect the true value of a number in the same way as units do. For example, if a value is stored as 456 cents, it is also $4.56. The number and its storage don't understand cents or dollars, or know a decimal belongs before the last two digits. The display format should be adjusted to handle that part. It is closely tied to storage formats, though, because the true value is affected, and the product of two fixed point numbers makes another fixed point number with the decimal in a new place.