Consider three floating point numbers A, B and C stored in registers R_A, R_B and R_C respectively as per IEEE-754 single precision floating point format. The content stored in these registers (in hexadecimal) are as follows: R_A = 0xC1400000, R_B = 0x42100000, R_C = 0x41400000 Which one of the following is FALSE? A. A + C = 0 B. C = A + B C. B = C D. (B - C) > 0

GATE 2022 · Digital Logic · IEEE Representation · medium

Answer: B. C = A + B is FALSE (since C = 12.0 but A + B = -12.0 + 36.0 = 24.0 != 12.0)

  1. Decode R_A = 0xC1400000: 0xC1400000 = 1100 0001 0100 0000 0000 0000 0000 0000 Sign = 1, Exp = 10000010 = 130, actual exp = 3 Mantissa bits = 10000... -> 1.1 in binary A = -1.1b x 2^3 = -(1 + 0.5) x 8 = -12.0
  2. Decode R_B = 0x42100000: 0x42100000 = 0100 0010 0001 0000 0000 0000 0000 0000 Sign = 0, Exp = 10000100 = 132, actual exp = 5 Mantissa bits = 00100... -> 1.001 in binary B = +1.001b x 2^5 = (1 + 0.125) x 32 = 36.0
  3. Decode R_C = 0x41400000: 0x41400000 = 0100 0001 0100 0000 0000 0000 0000 0000 Sign = 0, Exp = 10000010 = 130, actual exp = 3 Mantissa bits = 10000... -> 1.1 in binary C = +1.1b x 2^3 = 1.5 x 8 = 12.0
  4. Evaluate each statement: A = -12.0, B = 36.0, C = 12.0 A. A + C = -12 + 12 = 0 -> TRUE B. C = A + B -> 12 = -12 + 36 = 24 -> FALSE (12 != 24) C. B = C -> 36 = 12 -> Also False, but B is less obvious D. (B - C) > 0 -> 36 - 12 = 24 > 0 -> TRUE The non-trivial FALSE statement is B: C = A + B (12 != 24).