C Programming - Expressions - Discussion

Discussion Forum : Expressions - Find Output of Program (Q.No. 2)
2.
Assuming, integer is 2 byte, What will be the output of the program?
#include<stdio.h>

int main()
{
    printf("%x\n", -2<<2);
    return 0;
}
ffff
0  
fff8
Error
Answer: Option
Explanation:
The integer value 2 is represented as 00000000 00000010 in binary system.

Negative numbers are represented in 2's complement method.

1's complement of 00000000 00000010 is 11111111 11111101 (Change all 0s to 1 and 1s to 0).

2's complement of 00000000 00000010 is 11111111 11111110 (Add 1 to 1's complement to obtain the 2's complement value).

Therefore, in binary we represent -2 as: 11111111 11111110.

After left shifting it by 2 bits we obtain: 11111111 11111000, and it is equal to "fff8" in hexadecimal system.
Discussion:
33 comments Page 3 of 4.

VENKAT said:   10 years ago
In above explanation why you added only two zeros please can you explain?

Nitesh Alashe said:   10 years ago
Firstly 2: 0000 0000 0000 0010.

Make complement of 2 we get -2: 1111 1111 1111 1101 (All 0's to 1 and 1's to 0).

Then add 1 in that, then it becomes +1: 1111 1111 1111 1110.

As there is << operator which is pointing towards right to left.

So add 2 zero's to right it becomes 1111 1111 1111 1000 which is FFF8.

So option C.

Saisudha said:   1 decade ago
How is left shifting done? Can anyone please explain it?

Nani said:   1 decade ago
Why should we follow hexadecimal formats?

Mausami said:   1 decade ago
But if there is negative then shifting means appending 1's rather than 0's.

Am I right ?

Vamsi reddy said:   1 decade ago
Why is it, in hexadecimal form ? please explain.

S_14 said:   1 decade ago
@Svetta, @Swati :

Explaining left shift by 2 bits:

Append two zeros on the right hand side, then write whole no before them (excluding the 2 bits at left hand side).

Why we are shifting the two bits by left?

Falcon said:   1 decade ago
@Sameer
In dev-c integer is 4 byte

Swati said:   1 decade ago
How is shifting done ? please tell anyone.

Svetta said:   1 decade ago
How is shifting done?


Post your comments here:

Your comments will be displayed after verification.