# Floating Point Representation of Binary Numbers

Binary numbers floating-point representation: Here, we are going to learn about the floating point representation of binary numbers.
Submitted by Saurabh Gupta, on October 24, 2019

Prerequisite: Number systems

We all very well know that very small and very large numbers in the decimal number system are represented using scientific notation form by stating a number (mantissa) and an exponent in the power of 10. Some of the examples are 6.27 * 10-27 and 5.21 * 1034. Similarly, Binary numbers can also be represented in the same form by stating a number (mantissa) and an exponent of 2. The format of this representation will be different for different machines.

The 16-bit machine consists of 10 bits as the mantissa and 6 bits for the exponent part whereas 24-bit machine consists of 15 bits for mantissa and 9 bits for exponent.

Format of the 16-bit machine can be represented as:

Mantissa PartExponent Part
0110011010101010

The mantissa is written in 2's complement form, so the MSB of the Mantissa can be thought of as a sign bit. The binary point is assumed to be to the right of this sign bit. The 6-bit of the exponent can be used to represent 0 to 63, however, to express negative exponents a number (32)10 or (100000)2 is added to the desired exponent.

Excess-32 Representation: This is a common system to represent floating-point numbers. In this notation, to represent a negative exponent, we add (32)10 to the given exponent which are given by the 6 bits.

Given table illustrates representation of exponent part.

Desired Exponent 2's complement notation Excess-32 notation (in 6 bits) Binary representation
-32 100000 100000 +100000 = 000000 000000
-31 100001 100001 +100000 = 000001 000001
-30 100010 100010 +100000 = 000010 000010
-15 110001 110001 +100000 = 010001 010001
0 000000 000000 +100000 = 100000 100000
+1 000001 000001 +100000 = 100001 100001
+15 001111 001111 +100000 = 101111 101111
+30 011110 011110 +100000 = 111110 111110
+31 011111 011111 +100000 = 111111 111111

Mantissa PartExponent Part
0110011010101010

As given above, the floating-point number given in the above format is:

At the extreme left (MSB) is the sign-bit '0', which represents it is a positive number. Also, just after the sign-bit, we assume a binary point. Thus,

```    In Mantissa Part: .110011010
Subtracting 100000   001010 (i.e.,10 in decimal, so exponent part is 210)
The number is N
= +(.110011010)2 * 210
= +(1100110100.00)
= +(820)10
```

Example 1: Express the following decimal number into 16-bit floating point number (45365.125)10

Solution:

```    Binary equivalent of (45365.125)10: 1011000100110101.001
Binary format: .1011000100110101 * 216
Mantissa: + .101100010
Exponent: 010000 (Value of exponent is 16)
Equivalent exponent: 010000 + 100000 = 110000
```

Since the number is a positive number an additional sign-bit '0' is added in the MSB.

So, the floating-point format will be 0101100010110000

Example 2: What floating point number do the given number 0100101001101011 represents?

Solution:

At the extreme left (MSB) is the sign-bit '0' which represents it is a positive number. Also, just after the sign-bit we assume a binary point. Thus,

```    In Mantissa Part: .100101001
Subtracting 100000 001011 (i.e.,11 in decimal, so exponent part is 211)
The number is N
= +(.100101001)2 * 211
= +(10010100100.0)
= +(1188)10
```

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates