#include <stdio.h> int main() { unsigned char n = 250; printf("n = %u\n", n); printf("n = 0x%02X\n", n); // First Approach struct byte { unsigned char a:1, b:1, c:1, d:1, e:1, f:1, g:1, h:1; } *ba; ba = (struct byte *)&n; printf("Bin: %u%u%u%u %u%u%u%u\n", (*ba).h, (*ba).g, (*ba).f, (*ba).e, (*ba).d, (*ba).c, (*ba).b, (*ba).a); // Second Approach printf("Bin: "); for(int i=0; i<8; i++) { if(i==4) printf(" "); printf("%u", n&128?1:0); n = n << 1; } printf("\n"); return 0; }
n = 250 n = 0xFA Bin: 1111 1010 Bin: 1111 1010
#include <stdio.h> #include <stdint.h> void showbin32(uint32_t num) { struct byte { unsigned char a:1; unsigned char b:1; unsigned char c:1; unsigned char d:1; unsigned char e:1; unsigned char f:1; unsigned char g:1; unsigned char h:1; }; union { uint32_t n; struct byte c[4]; } pack; pack.n = num; for (int i = 3; i >= 0; i--) { printf("%u%u%u%u%u%u%u%u ", pack.c[i].h, pack.c[i].g, pack.c[i].f, pack.c[i].e, pack.c[i].d, pack.c[i].c, pack.c[i].b, pack.c[i].a); } printf("\n"); } int main() { uint32_t n = 4278190080; printf("n = %u\n", n); printf("n = 0x%02X\n", n); showbin32(n); return 0; }
n = 4278190080 n = 0xFF000000 11111111 00000000 00000000 00000000
#include <stdio.h> #include <stdint.h> #include <string.h> void showbinstr(char *s, size_t len) { struct byte { unsigned char a:1; unsigned char b:1; unsigned char c:1; unsigned char d:1; unsigned char e:1; unsigned char f:1; unsigned char g:1; unsigned char h:1; }; union { unsigned char n; struct byte c; } pack; for (int i = 0; i < len; i++) { pack.n = s[i]; printf("%u%u%u%u%u%u%u%u ", pack.c.h, pack.c.g, pack.c.f, pack.c.e, pack.c.d, pack.c.c, pack.c.b, pack.c.a); } printf("\n"); } int main() { char str[16]; str[0] = 0xff; str[1] = 0xff; str[2] = 0xff; str[3] = 0xff; str[4] = 0xff; str[5] = 0xff; str[6] = 0xff; str[7] = 0xff; str[8] = 0x00; str[9] = 0x00; str[10] = 0x00; str[11] = 0x00; str[12] = 0x00; str[13] = 0x00; str[14] = 0x00; str[15] = 0x00; showbinstr(str, 16); strcpy(str, "Pejman"); printf("str: %s\n", str); showbinstr(str, strlen(str)); return 0; }
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 str: Pejman 01010000 01100101 01101010 01101101 01100001 01101110