#include void main() { unsigned int color; unsigned char underbar, i; char bin[36]; /* 00000000_00000000_00000000_00000000\0 */ /* 0123456789a123456789b123456789c12345 == 36 bytes */ color = 0xf0; printf("size = [%dbyte], shift = [%d]\n", sizeof(color), sizeof(color) * 8 - 1); underbar = 0; for (i = 0; i < sizeof(color) * 8; i++){ if (!(i % 8) && i) { bin[i + underbar] = '_'; underbar++; } /* bin[i + underbar] = '0' + ((color << i) >> (sizeof(color) * 8 - 1)); printf("%d ", (unsigned char)(color << i) >> (sizeof(color) * 8 - 1)); */ bin[i + underbar] = '0' + ((color >> (sizeof(color) * 8 - 1) - i) & 1); } bin[i + underbar] = '\0'; printf("%s\n", bin); printf("Color = %u (0x%X)\n", color, color); }