Complicated Declarations

Q1: 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;
}

A 4343445454, 4343445454

B 4545455434, 4545455434

C 4294967295, 4294967295

D Garbage values

ANS:A - 4343445454, 4343445454

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.



img not found
img

For help Students Orientation
Mcqs Questions

One stop destination for examination, preparation, recruitment, and more. Specially designed online test to solve all your preparation worries. Go wherever you want to and practice whenever you want, using the online test platform.