ISRO Electronics & Communication (ECE) 2018 - Question 55

All ISRO Electronics & Communication (ECE) papers | ISRO Electronics & Communication (ECE) 2018

Topic: C Programming and Data Structures

Content of variable flag after following 'C' code execution:
Unsigned char flag = 0x7C;
flag = flag | 0x80;
flag = flag | (1<<4);
flag &= ~(1<<7);
flag ^= (1<<6);

  • A. 0x1C
  • B. 0x20
  • C. 0x24
  • D. 0x3C

Answer: D. 0x3C

Explanation: Initial value: flag = 0x7C (0111 1100 in binary).
1. `flag = flag | 0x80`: sets the MSB, making it 0xFC (1111 1100).
2. `flag = flag | (1<<4)`: sets bit 4. Since bit 4 is already 1, flag remains 0xFC.
3. `flag &= ~(1<<7)`: clears bit 7. 0xFC AND 0x7F = 0x7C (0111 1100).
4. `flag ^= (1<<6)`: toggles bit 6. Since bit 6 is 1, it becomes 0. 0x7C XOR 0x40 = 0x3C (0011 1100).

| | All questions of ISRO Electronics & Communication (ECE) 2018