The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+3 votes

asked in Programming by Active (1.4k points) | 94 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) {
	return 0;


answered by Veteran (57.4k 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 (21k points)
edited by

Related questions

+4 votes
1 answer
asked in Programming by Rohan Mundhey Loyal (4.4k points) | 94 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

28,981 questions
36,818 answers
34,706 users