C Programming - Complicated Declarations - Discussion
Discussion Forum : Complicated Declarations - Find Output of Program (Q.No. 7)
7.
What will be the output of the program?
#include<stdio.h>
typedef unsigned long int uli;
typedef uli u;
int main()
{
uli a;
u b = -1;
a = -1;
printf("%lu, %lu", a, b);
return 0;
}
Answer: Option
Explanation:
The system will treat the negative numbers with 2's complement method.
For 'long int' system will occupy 4 bytes (32 bits).
Therefore,
Binary 1 : 00000000 00000000 00000000 00000001
To represent -1, system uses the 2's complement value of 1. Add 1 to the 1's complement result to obtain 2's complement of 1.
So, First take 1's complement of binary 1 (change all 0s to 1s and all 1s to 0s)
1's complement of Binary 1:
11111111 11111111 11111111 11111110
2's complement of Binary 1: (Add 1 with the above result)
11111111 11111111 11111111 11111111
In HexaDecimal
11111111 11111111 11111111 11111111 = FFFF FFFF FFFF FFFF
In Unsigned Integer
11111111 11111111 11111111 11111111 = 4294967295.
Discussion:
7 comments Page 1 of 1.
Neha said:
9 years ago
Please, anybody explain the method of conversion of hexadecimal to unsigned int.
Roshni said:
9 years ago
Please answer this question immediately, how to convert the hexadecimal to unsigned integer manually? Explain the method.
Sandy said:
1 decade ago
Guys its taking the maximum range of unsigned numbers.
In 32 bit machine, maximum range of unsigned int is 4294967295.
In 32 bit machine, maximum range of unsigned int is 4294967295.
Ranjitha said:
1 decade ago
May I know how to convert hexadecimal to unsigned int ?
Ranjitha said:
1 decade ago
May I know how to convert hexadecimal to unsigned integer ?
Vanita said:
1 decade ago
Quite confusing can any one explain it properly?
Nandu said:
1 decade ago
Unsigned integer means I mean how we can change ffff ffff ffff ffff to 4294967295. Please anyone explain.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers