#include <iostream>
#include <bitset>
union Example {
char arr[4]; // 4 bytes
struct { short hi, lo; } st; // 4 bytes
int i; // 4 bytes
} u;
void print_bits(int n) {
std::bitset<32> bits(n);
std::cout << bits << '\n';
}
void print_bits(short s) {
std::bitset<16> bits(s);
std::cout << bits << '\n';
}
void print_bits(char ch) {
std::bitset<8> bits(ch);
std::cout << bits << '\n';
}
int main()
{
u.i = 0xFF00F00F;
print_bits(u.i);
print_bits(u.st.lo);
print_bits(u.st.hi);
print_bits(u.arr[3]);
print_bits(u.arr[2]);
print_bits(u.arr[1]);
print_bits(u.arr[0]);
}
/*
run:
11111111000000001111000000001111
1111111100000000
1111000000001111
11111111
00000000
11110000
00001111
*/