c - Floating point conversion - Binary -> decimal -
here's number i'm working on
1 01110 001 = ____
1 sign bit, 5 exp bits, 3 fraction bits
bias = 15
here's current process, can tell me i'm missing something
- convert binary exponent decimal
01110 = 14 - subtract bias
14 - 15 = -1 - multiply fraction bits result
0.001 * 2^-1 = 0.0001 - convert decimal
.0001 = 1/16
the sign bit 1 result -1/16, given answer -9/16. mind explaining 8 in fraction coming from?
you seem have correct concept, including understanding of excess-n representation, you're missing crucial point.
the 3 bits used encode fractional part of magnitude 001, there implicit 1. preceding fraction bits, full magnitude 1.001, can represented improper fraction 1+1/8 => 9/8.
2^(-1) same 1/(2^1), or 1/2.
9/8 * 1/2 = 9/16. take sign bit account, , arrive @ answer -9/16.
Comments
Post a Comment