반응형
#include <stdio.h>
inline unsigned char left_rotate( unsigned char x, int l )
{
return ((x<<l) & 0xff) | ((x>>(8-l)) & 0xff);
}
int main()
{
unsigned char x,y;
x = 0x54; /* expected: 0x2a */
printf("%x\n", x );
y = left_rotate( x,4 );
x = (x & 0xcc) | (y & 0x33);
y = left_rotate( x,1 );
x = left_rotate( y,2 );
y = (x & 0xaa) | (y & 0x55 );
printf("%x\n", y );
return 0;
}
반응형