/* test unions and bit fields */ #include #include using namespace std; int main() { struct format0{ unsigned i:16 ; }; struct format1{ // our Gnu C++ appears to do this upside down unsigned unused :6; unsigned RS:2; unsigned I:1; unsigned RD:2; unsigned OP:5; }; struct format2{ unsigned ADDR:8; unsigned I:1; unsigned RD:2; unsigned OP:5; }; struct format3{ int CONST:8; unsigned I:1; unsigned RD:2; unsigned OP:5; }; union instruction{ int i; format0 f0; format1 f1; format2 f2; format3 f3; }; instruction ins; ins.i =0x77F7; cout << hex << ins.i <