# Using a 16-bit 2,s Complement normalised floating-point representation; 10-bit fractional mantissa and a 6-bit integer exponent: express 2.171875

So far I know how to normalize when you are given, say: 1111010010 Mantissa, and 000100 exponent and are told that it's a positive number:

1.111010010 and the exponent value is 4
move point 3 to the right: 1111.010010
subtract exponent by 3 = 1; 000001
replace extra binary digits behind sign bit with trailing 0s
1.010010000

so 1.010010000 , 000001
is the normalized form.


Now how do I express 2.171875 under the same representation? I started by converting it to binary: 10.0010110 but how do I represent that as 10-bits 2'C Mantissa and 6-bits exponent to begin with? Or am I completely lost?

I am lost with the given algorithm for a normalized representation.

The most significant bits should be kept, which is not what I see in your example.

• 1.111010010 x 2^4 = .1111010010 x 2^5 (This keeps the dot leftmost, and one can possibly truncate bits to the right - or even round 0xxx down, and 1xxx up for positive numbers). Having a 1 immediately after the dot, allows the highest precision, compare with .00001111010010,
• sign 1 bit = 0 (both ones complement, twos complement)
• mantissa '1' + 8 bits = 111101001
• exponent 6 bits two-complements = 000101
• result: 0 11110101001 000101

This is just one possible variant: a ones complement mantissa with extra sign bit (but almost a two's complement mantissa). Here it shifted till a .1xxx for a nonzero number. (Hence that 1 is almost redundant.)

• 1.111010010 x 2^4 = 1111.010010 x 2^1
• sign 1 bit = 0 (both ones complement, twos complement)
• mantissa 9 bits = 1111 01001
• exponent 6 bits two-complements = 000001
• result: 0 11110101001 000001

It only differs in the implicit +4.

For the .1 method:

• 2.171875 = number < 1, times 2^exp = 0,54296875 x 2^2
• 0,54296875 = 0.1xxx
• etcetera