#include <stdint.h>
#include <cstdio>

union DWord
{
	DWord() : dword(0)
	{}

	DWord(uint32_t valor) : dword(valor)
	{}

	void operator=(uint32_t valor) { dword = valor; }

	uint32_t dword;

	struct
	{
		uint32_t valor;
	};

	struct
	{
		uint16_t word0;
		uint16_t word1;
	};

	struct
	{
		uint8_t byte0;
		uint8_t byte1;
		uint8_t byte2;
		uint8_t byte3;
	};
};

int main()
{
	DWord a = 700;

	printf("O valor no inteiro: %d\n", a.valor);
	printf("O valor no bytes 0: %d\n", a.byte0);
	printf("O valor no bytes 1: %d\n", a.byte1);

	// O contrário:

	DWord b;

	b.byte0 = 188;
	b.byte1 = 2;

	printf("O valor no inteiro: %d\n", b.valor);

	return 0;
}

