====== Show Binary ======
#include
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
#include
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
#include
#include
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