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

asked in Programming by Active (1.4k points) 27 79 | 87 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 (56.9k points) 36 193 500
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 (20.3k points) 13 78 208
edited by

Related questions

0 votes
1 answer
1
0 votes
1 answer
2
+4 votes
1 answer
3
asked in Programming by Rohan Mundhey Loyal (4.4k points) 6 37 129 | 92 views


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
Top Users Oct 2017
  1. Arjun

    23678 Points

  2. Bikram

    17268 Points

  3. Habibkhan

    8950 Points

  4. srestha

    6446 Points

  5. Debashish Deka

    5478 Points

  6. jothee

    5128 Points

  7. Sachin Mittal 1

    4882 Points

  8. joshi_nitish

    4486 Points

  9. sushmita

    4032 Points

  10. Rishi yadav

    3974 Points


Recent Badges

Popular Question Hira Thakur
Notable Question amaity
Notable Question srestha
Nice Answer Madhab
Renewal Madhab
Popular Question sourabh
Notable Question K ANKITH KUMAR
Great Answer saloni
Resurrection saloni
Great Question Ishrat Jahan
27,406 questions
35,255 answers
84,502 comments
33,454 users