Pages

Monday, October 5, 2009

Byte-Salad

Перемешались все байты:


#include <stdio.h>

int main()
{
unsigned int number = 0x1234;
printf("number = %d (0x%x)\n ", number, number);

unsigned int mix = 0;
//2413
printf("salad:\n");
printf("\n\t0x%04x\n\n", number);
mix = (number & 0x0F00);
printf("\t0x%04x", mix);
printf("\t0x%04x\n", mix << 4);

mix = (number & 0x000F);
printf("\t0x%04x", mix);
printf("\t0x%04x\n", mix << 8);

mix = (number & 0xF000);
printf("\t0x%04x", mix);
printf("\t0x%04x\n", mix >> 8);

mix = (number & 0x00F0);
printf("\t0x%04x", mix);
printf("\t0x%04x\n", mix >> 4);

mix = ((number & 0x0F00) << 4) | ((number & 0x000F) << 8) | ((number & 0xF000) >> 8) | ((number & 0x00F0) >> 4);
printf("\n\tmix = %d (0x%04x)\n", mix, mix);
return 0;
}

No comments:

Post a Comment