GATE CSE
First time here? Checkout the FAQ!
x
+3 votes
80 views

asked in Programming by Active (1.4k points)   | 80 views
-121. range of character -128 to 127. after 127 , -128 comes and so on. it is cyclic. so add 10 to 127 will give -121

Output would most likely be -121. However, there is a catch. Please check this.

2 Answers

+3 votes
Best answer

As per C standard, there are three distinct types.

  1. a char
  2. a signed char
  3. an unsigned char

 gcc by default takes plain char as signed char. in a 2's complement machine following things would happen when ever char value exceeds $127$.

  • Likewise in the above program, it will print $-121$

 


The following program will stop for an unsigned char. But loop forever for a signed char

 

#include <stdio.h>
int main() {
	unsigned char c = 0; // loops forever for char c = 0;
	while(c < 130) {
		printf("hello\n");
		c++;
	}
	return 0;
}

 

answered by Veteran (50.9k points)  
selected by
+1 vote

We should know the below concepts before solving this question:-

Concept1:- char c ; means by default signed char c;

Conecpt2:- C Follows 2's Complement representation.

Concept3(Follows from Concept2):-(Imp):- Whatever U store it stored in Binary Number but while retrieval  it gives 2's Complement of Binary Number

So here c=125+10=135

(135)10 = (1000 0111)

So in memory 1000 0111 will store which is binary equivalent of 135

but when we will print char C means ->>( 1000 0111 )it will give us the 2's Complement representation of c which is -121.

Hence -121 is Ans.

 

answered by Veteran (17.8k points)  
edited by

Related questions

0 votes
1 answer
2
asked in Programming by Manu FG (41 points)   | 142 views
+4 votes
1 answer
3
asked in Programming by Rohan Mundhey Loyal (4.2k points)   | 85 views


Top Users Aug 2017
  1. ABKUNDAN

    4670 Points

  2. Bikram

    4576 Points

  3. akash.dinkar12

    3428 Points

  4. rahul sharma 5

    3124 Points

  5. manu00x

    2882 Points

  6. makhdoom ghaya

    2460 Points

  7. just_bhavana

    2142 Points

  8. Tesla!

    2050 Points

  9. stblue

    2030 Points

  10. joshi_nitish

    1686 Points


24,979 questions
32,079 answers
74,607 comments
30,153 users