output is 12480
(0) is the problem i expect 16
i trace this code but i have problem at i=5
Code:
#include<stdio.h>
int main()
{
char c=48;// char c='0';
int i, mask=1;
for(i=1; i<=5; i++)
{
printf("%c",c|mask);
mask = mask<<1;
}
system("pause");
return 0;
}
c=0,mask=1
i=1
print 1
c=0,mask=2
i=2
print 2
c=0,mask=4
i=3
print 4
c=0,mask=8
i=4
print 8
c=0,mask=16
i=5
print (0 bit or 16)
2pown |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
bit id |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
c |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
mask |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 bitor 16 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
print 16 not 0 ???
c=0,mask=32
return 0 // end of main