I found this while looking through the blowfish encryption algorithm, I am looking for techniques for my own and I dont quite understand this portion:

Code:
struct WordByte
{
	unsigned int three:8;
	unsigned int two:8;
	unsigned int one:8;
	unsigned int zero:8;
};

union Word
{
	unsigned int word;
	WordByte byte;
};
I know that the union type Word can be accessed as a WordByte, and i take it that its somehow organized from 4 bytes with 8 bits each? how do these numbers relate? sorry I blanked.