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;
}
4343445454, 4343445454
4545455434, 4545455434
4294967295, 4294967295
Garbage values
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.

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:

Your comments will be displayed after verification.