C Programming - Bitwise Operators - Discussion
Discussion Forum : Bitwise Operators - Find Output of Program (Q.No. 9)
9.
What will be the output of the program ?
#include<stdio.h>
int main()
{
int i=32, j=0x20, k, l, m;
k=i|j;
l=i&j;
m=k^l;
printf("%d, %d, %d, %d, %d\n", i, j, k, l, m);
return 0;
}
Discussion:
28 comments Page 1 of 3.
Amit said:
10 years ago
Hi @Charu.
Question--> 0*80 = 128.
Answer --> Firstly we will separate 80 in 8 and 0.
After that the binary number's of 8 and 0 are:
8 = 1000.
0 = 0000.
Then combine these number's.
80 = 1000 0000.
After that we will make decimal number for 1000 0000 with the help of this,
128 64 32 16 8 4 2 1.
So 1000 0000 = 128.
Finally 0*80 = 128.
Question--> 0*80 = 128.
Answer --> Firstly we will separate 80 in 8 and 0.
After that the binary number's of 8 and 0 are:
8 = 1000.
0 = 0000.
Then combine these number's.
80 = 1000 0000.
After that we will make decimal number for 1000 0000 with the help of this,
128 64 32 16 8 4 2 1.
So 1000 0000 = 128.
Finally 0*80 = 128.
Manju said:
9 years ago
@Ashmita.
4 bits equal to 1 hexadecimal digit.
j variable having 0*20 is represented as 0010 0000 . Same as like integer variable i.
k value after OR operation both i and j get same result 32 value.
L also get 32 after performing AND operation b/t I & j;
then, k with XOR operation.
So, the result will be -> 32,32,32,32,32.
4 bits equal to 1 hexadecimal digit.
j variable having 0*20 is represented as 0010 0000 . Same as like integer variable i.
k value after OR operation both i and j get same result 32 value.
L also get 32 after performing AND operation b/t I & j;
then, k with XOR operation.
So, the result will be -> 32,32,32,32,32.
SONU said:
1 decade ago
In binary:
1=0000
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
.......
15=1111.
For decimal to binary:
0110 = start from left
0x 2(power 0)+1x 2(power 1)+1x 2(power 2)+0x 2(power3) = 0+2+4+0 = 6.
For decimal to hexadecimal:
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=A
11=B
12=C
13=D
14=E
15=F
May IT help you @UDAY.
1=0000
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
.......
15=1111.
For decimal to binary:
0110 = start from left
0x 2(power 0)+1x 2(power 1)+1x 2(power 2)+0x 2(power3) = 0+2+4+0 = 6.
For decimal to hexadecimal:
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=A
11=B
12=C
13=D
14=E
15=F
May IT help you @UDAY.
Ashutosg said:
6 years ago
Here j=0x20 means 2 hexa decimals i,e 2*16=32, So now j=32 and given i value also 32.
i=32 --> 100000,
j=32 --> 100000,
i|j --> 100000, So k=32 (applying | operator),
i&j --> 100000, So l=32 (applying & operator),
k^l --> 000000, So m=0 (applying ^ operator).
i=32 --> 100000,
j=32 --> 100000,
i|j --> 100000, So k=32 (applying | operator),
i&j --> 100000, So l=32 (applying & operator),
k^l --> 000000, So m=0 (applying ^ operator).
Raju said:
2 decades ago
Here j=0x20 means 2 hexa decimals i,e 2*16=32, So now j=32 and given i value also 32.
i=32 --> 100000
j=32 --> 100000
i|j --> 100000, So k=32 (applying | operator)
i&j --> 100000, So l=32 (applying & operator)
k^l --> 000000, So m=0 (applying ^ operator).
i=32 --> 100000
j=32 --> 100000
i|j --> 100000, So k=32 (applying | operator)
i&j --> 100000, So l=32 (applying & operator)
k^l --> 000000, So m=0 (applying ^ operator).
Amit said:
1 decade ago
I think.
B = B10101010; // B10101010 == 0xAA.
We can break this binary code in two parts 1010 and 1010.
Means B10101010 so 1010 = A and another 1010 = A.
So we can use it as like 0x20.
Means 2 = 0010 and 0 = 0000.
Means 00100000 = 32.
So finally 0x20 = 0010 0000 = 32.
B = B10101010; // B10101010 == 0xAA.
We can break this binary code in two parts 1010 and 1010.
Means B10101010 so 1010 = A and another 1010 = A.
So we can use it as like 0x20.
Means 2 = 0010 and 0 = 0000.
Means 00100000 = 32.
So finally 0x20 = 0010 0000 = 32.
Kunal said:
1 decade ago
Here one number is given in decimal and one in hexadecimal so, to get the result either convert decimal to hexadecimal or vice versa.
Now converting hexadecimal 0x20 to decimal as 2*16^1+0*16^0=32
Now convert it into binary to get the result.
Now converting hexadecimal 0x20 to decimal as 2*16^1+0*16^0=32
Now convert it into binary to get the result.
Vikram said:
1 decade ago
i=32 =00100000
j=0x20=00100000
k=i(or)j ----> o/p is 32.
l=i(and)j -----> o/p is 32.
m=k(xor)j -----> o/p is o. since if both of i/P's are equal then o/p is low in xor logic.
hence o/p is
i,j,k,l,m = 32,32,32,32,0.
Thank you.
j=0x20=00100000
k=i(or)j ----> o/p is 32.
l=i(and)j -----> o/p is 32.
m=k(xor)j -----> o/p is o. since if both of i/P's are equal then o/p is low in xor logic.
hence o/p is
i,j,k,l,m = 32,32,32,32,0.
Thank you.
Nayan vekariya said:
5 years ago
0x20 means that,
16 * 2 = 32.
So that 32 = 100000.
32 = 100000.
K = 32 | 0x20 ==== 32 | 32 (true | true)
L = 32 & 0x20 ==== 32 & 32 (true & true)
M = 32 ^ 0x20 ==== 32 ^ 32 (true | false)
So that 32, 32, 0.
16 * 2 = 32.
So that 32 = 100000.
32 = 100000.
K = 32 | 0x20 ==== 32 | 32 (true | true)
L = 32 & 0x20 ==== 32 & 32 (true & true)
M = 32 ^ 0x20 ==== 32 ^ 32 (true | false)
So that 32, 32, 0.
(1)
Sameer said:
9 years ago
@Ashmita. In C/C++ the hexadecimal numbers are written as 0x20. Here the 0x. Represents, it is a hexadecimal number Or hexadecimal numbers are always preceded by 0x.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers