What is wrong with my switch....I get the same weird value for x three times
Code:
#include <stdio.h>
#define N (int)(8*sizeof(int))
#define sizeofInt 32
void printbits(unsigned int t);
int main(void)
{
unsigned int x;
int k,i,flip,mask,flag;
flip=0;
mask=1;
for (k=0;k<3;k++)
{
switch(x)
{
case 1: x= 0xA4420810; break;
case 2: x= 0xfedcba98; break;
case 3: x= 0x0f0f0f0f; break;
}
printf("x:%X\n",x);
printbits(x);
flag= x;
for (i=0; i<sizeofInt; i++)
{
flip <<= 1;
flip |= flag & mask;
flag >>= 1;
}
printbits(flip);
putchar('\n');
}
return 0;
}
void printbits(unsigned int t)
{
int k;
for (k=0;k<N;k++,t<<=1)
{
putchar('0'+((0x80000000 &t)>>(N-1)) );
if ((k+1)%4==0) putchar(' ');
}
putchar('\n');
return;
}
Code tags added by Kermi3