C Programming - Bitwise Operators - Discussion
Discussion Forum : Bitwise Operators - Find Output of Program (Q.No. 1)
1.
Assunming, integer is 2 byte, What will be the output of the program?
#include<stdio.h>
int main()
{
printf("%x\n", -1>>1);
return 0;
}
Answer: Option
Explanation:
Negative numbers are treated with 2's complement method.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s)
2's complement: Adding 1 to the result of 1's complement.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s)
2's complement: Adding 1 to the result of 1's complement.
Binary of 1(2byte) : 0000 0000 0000 0001 Representing -1: 1s complement of 1(2byte) : 1111 1111 1111 1110 Adding 1 to 1's comp. result : 1111 1111 1111 1111 Right shift 1bit(-1>>1): 1111 1111 1111 1111 (carry out 1) Hexadecimal : f f f f (Filled with 1s in the left side in the above step)
Note:
1. Fill with 1s in the left side for right shift for negative numbers.
2. Fill with 0s in the right side for left shift for negative numbers.
3. Fill with 0s in the left side for right shift for positive numbers.
4. Fill with 0s in the right side for left shift for positive numbers.
Discussion:
26 comments Page 3 of 3.
Mahesh said:
9 years ago
Thank you @Ahmed.
Akshay g said:
8 years ago
The Explanation/answer is incorrect.
Because of {int } takes 4 bytes in windows .So, the answer is ffffffff.
Because of {int } takes 4 bytes in windows .So, the answer is ffffffff.
Jaya said:
8 years ago
I am not understanding this.
Naveen Narayanan said:
7 years ago
@Mrutyunjay patil.
-4= 0000 0000 0000 0100.
1's ->1111 1111 1111 1011.
2's->adding 1.
1111 1111 1111 1100.
By left shifting 0 as -4<<2,we get.
1111 1111 1111 0000.
Since,
fff0.
-4= 0000 0000 0000 0100.
1's ->1111 1111 1111 1011.
2's->adding 1.
1111 1111 1111 1100.
By left shifting 0 as -4<<2,we get.
1111 1111 1111 0000.
Since,
fff0.
(5)
Gourav said:
4 years ago
If it takes 17<<2 what is the output? Please explain.
(1)
Mayur said:
3 years ago
Binary of 1(2byte) : 0000 0000 0000 0001.
I didn't understand this step. Can someone explain it?
I didn't understand this step. Can someone explain it?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers