Open In App

Output of C programs | Set 55 (Shift Operators)

Last Updated : 03 Jan, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Shift operators

Q.1 What Is The Output Of this program?




#include <stdio.h>
int main()
{
    unsigned int i = 0x80;
    printf("%d ", i << 1);
    return 0;
}


Option
a) 0
b) 256
c) 100
d) 80

ans :- b

Explanation :- We know that 0x is hexa-decimal representation of number so 80 converted in decimal is 128 binary(10000000), its left shift 1 so it is (100000000)equal to 256.

Q.2 What Is The Output Of this program?




#include <stdio.h>
int main()
{
    unsigned int a = 0xffff;
    unsigned int k = ~a;
    printf("%d %d\n", a, k);
    return 0;
}


Option
a) 65535 -65536
b) -65535 65535
c) 65535 65535
d) -65535 -65535

ans :- a

Explanation :- This code 0x is Hexadecimal representation of number so ffff hexadecimal is converted into Decimal 65535 and stored in a. The negation of a -65535 is stored in k. k is an unsigned integer but it has a negative value in it. When k is being printed the format specifier is %d which represents signed integer thus -65536 gets printed as value of k. If the format specifier for k had been %u the value that would have been printed is 4294901760.

Q.3 What Is The Output Of this program?




#include <stdio.h>
int main()
{
    unsigned int a = -1;
    unsigned int b = 4;
    printf("%d\n", a << b);
    return 0;
}


Option
a) -1
b) 16
c) 8
d) -16

ans :- d

Explanation :- Here a integer is simply left-shifted 4 bit and print so it is -16.

Q.4 What Is The Output Of this program?




#include <stdio.h>
int main()
{
    unsigned int m = 32;
    printf("%d %d", m >> 1, ~m);
    return 0;
}


Option
a) 16 5
b) 64 -32
c) 16 33
d) 16 -33

ans :- d

Explanation :- This program 32 is(10000) and we know that negative number in binary system contain a one’s complement so here take a complement of a number and only print this number so the negation of 32 is -33.

Q.5 What Is The Output Of this program?




#include <stdio.h>
int main()
{
    unsigned int a = -1;
    unsigned int b = 15;
    printf("%d, ", a << 1);
    printf("%d\n", b >> 1);
    return 0;
}


Option
a) -2, 7
b) 2, 8
c) -1, 15
d) -2, 15

ans :- a

Explanation :- Here -1 binary(0001) if left shift 1 so it is -2(0010) and 15 binary(1111) is right shift 1 so it is (0111)so value 7.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads