view test/bitfield1.c @ 503:3c95c69aa80e

*** empty log message ***
author kono
date Fri, 23 Dec 2005 19:44:26 +0900
parents 5640fb7a270d
children 2f577690bcfb
line wrap: on
line source

int printf(const char *format, ...);

   struct aho {
        int i:1,j:1;
        char a:7;
        char :7,k:1,:3;
	long long v:33;
	long long w:33;
	long long x:33;
   } a /* = {-1,3,3,3,3} */ ;

   union aho1 {
        int i:1,j:1;
        char a:7;
        char :7,k:1,:3;
	long long v:33;
	long long w:33;
	long long x:33;
   } a11 ;

union ll1 {
   unsigned char a[32];
   struct {
        char a:4;
	long long v:33;
	long long w:33;
	long long x:33;
   } b;
} ll1;

union ll0 {
   unsigned char a[32];
   struct {
        char a:4;
	long long v:48;
	long long w:48;
	long long x:48;
   } b;
} ll0;


union ll {
   unsigned char a[32];
   struct {
        char a:4;
	long long v:56;
	long long w:56;
	long long x:56;
   } b;
} ll;

union cc {
   int a;
   struct {
	char a:1;
	char b:4;
	char c:7;
	char d:4;
	char e:4;
	char f:4;
   } b;
} cc;

union ii {
   int a;
   struct {
	int a:1;
	int b:4;
	int c:4;
	int d:4;
	int e:4;
	int f:4;
    } b;
} ii;

main()
{
    int i;
    printf("#0078:%d\n",a.i);

     ll1.b.v = -1;
     printf("#0081:01:%llx\n",ll1.b.v);
     printf("#0082:02:"); for(i=0;i<32;i++) printf("#0082:%02x",ll1.a[i]); printf("#0082:\n");
     ll1.b.v = 0;
     ll1.b.w = -1;
     printf("#0085:02:"); for(i=0;i<32;i++) printf("#0085:%02x",ll1.a[i]); printf("#0085:\n");
     ll1.b.w = 0;
     ll1.b.x = -1;
     printf("#0088:02:"); for(i=0;i<32;i++) printf("#0088:%02x",ll1.a[i]); printf("#0088:\n");

     ll0.b.v = -1;
     printf("#0091:01:%llx\n",ll0.b.v);
     printf("#0092:02:"); for(i=0;i<32;i++) printf("#0092:%02x",ll0.a[i]); printf("#0092:\n");
     ll0.b.v = 0;
     ll0.b.w = -1;
     printf("#0095:02:"); for(i=0;i<32;i++) printf("#0095:%02x",ll0.a[i]); printf("#0095:\n");
     ll0.b.w = 0;
     ll0.b.x = -1;
     printf("#0098:02:"); for(i=0;i<32;i++) printf("#0098:%02x",ll0.a[i]); printf("#0098:\n");

     ll.b.v = -1;
     printf("#0101:1:%llx\n",ll.b.v);
     printf("#0102:02:"); for(i=0;i<32;i++) printf("#0102:%02x",ll.a[i]); printf("#0102:\n");
     ll.b.v = 0;
     ll.b.w = -1;
     printf("#0105:02:"); for(i=0;i<32;i++) printf("#0105:%02x",ll.a[i]); printf("#0105:\n");
     ll.b.w = 0;
     ll.b.x = -1;
     printf("#0108:02:"); for(i=0;i<32;i++) printf("#0108:%02x",ll.a[i]); printf("#0108:\n");

     printf("#0110:char a:1; char b:4; char c:7; char d:4; char e:4; char f:4;\n");
     cc.b.a = -1;
     printf("#0112:a:%08x\n",cc.a);
     cc.b.b = -1;
     printf("#0114:b:%08x\n",cc.a);
     cc.b.c = -1;
     printf("#0116:c:%08x\n",cc.a);
     cc.b.d = -1;
     printf("#0118:d:%08x\n",cc.a);
     cc.b.e = -1;
     printf("#0120:e:%08x\n",cc.a);
     cc.b.f = -1;
     printf("#0122:f:%08x\n",cc.a);
     printf("#0123:3:%d %d\n",cc.b.c,cc.b.d);
     cc.a = -1;
     printf("#0125:f:%08x\n",cc.a);
     cc.b.a = 0;
     printf("#0127:a:%08x\n",cc.a);
     cc.b.b = 0;
     printf("#0129:b:%08x\n",cc.a);
     cc.b.c = 0;
     printf("#0131:c:%08x\n",cc.a);
     cc.b.d = 0;
     printf("#0133:d:%08x\n",cc.a);
     cc.b.e = 0;
     printf("#0135:e:%08x\n",cc.a);
     cc.b.f = 0;
     printf("#0137:f:%08x\n",cc.a);
     printf("#0138:3:%d %d\n",cc.b.c,cc.b.d);
     cc.a = 0;
     printf("#0140:f:%08x\n",cc.a);
     cc.b.a = 1;
     printf("#0142:a:%08x\n",cc.a);
     cc.b.b = 1;
     printf("#0144:b:%08x\n",cc.a);
     cc.b.c = 1;
     printf("#0146:c:%08x\n",cc.a);
     cc.b.d = 1;
     printf("#0148:d:%08x\n",cc.a);
     cc.b.e = 1;
     printf("#0150:e:%08x\n",cc.a);
     cc.b.f = 1;
     printf("#0152:f:%08x\n",cc.a);
     printf("#0153:3:%d %d\n",cc.b.c,cc.b.d);
     cc.a = -1;
     printf("#0155:f:%08x\n",cc.a);
     cc.b.a = 1;
     printf("#0157:a:%08x\n",cc.a);
     cc.b.b = 1;
     printf("#0159:b:%08x\n",cc.a);
     cc.b.c = 1;
     printf("#0161:c:%08x\n",cc.a);
     cc.b.d = 1;
     printf("#0163:d:%08x\n",cc.a);
     cc.b.e = 1;
     printf("#0165:e:%08x\n",cc.a);
     cc.b.f = 1;
     printf("#0167:f:%08x\n",cc.a);
     printf("#0168:3:%d %d\n",cc.b.c,cc.b.d);

     ii.b.a = -1;
     printf("#0171:6:%08x\n",ii.a);
     ii.b.d = -1;
     printf("#0173:6:%08x\n",ii.a);
     printf("#0174:5:%d %d\n",ii.b.a,ii.b.d);

    main5();
    return 0;
}


main5()
{
    int i,j,bit=1;
    for(i=0;i<32;i++,bit<<=1) {
	ii.a = bit;
	printf("#0186:%08x:ii.b.a=%d ii.b.b=%d ii.b.c=%d ii.b.d=%d ii.b.e=%d ii.b.f=%d\n",bit,
		ii.b.a,ii.b.b,ii.b.c,ii.b.d,ii.b.e,ii.b.f);
    }
    bit=1;
    for(i=0;i<32;i++,bit<<=1) {
	cc.a = bit;
	printf("#0192:%08x:cc.b.a=%d cc.b.b=%d cc.b.c=%d cc.b.d=%d cc.b.e=%d cc.b.f=%d\n",bit,
		cc.b.a,cc.b.b,cc.b.c,cc.b.d,cc.b.e,cc.b.f);
    }
    ll.a[0]=ll.a[1]=ll.a[2]=ll.a[3]= ll.a[4]=ll.a[5]=ll.a[6]=ll.a[7]=0;
        ll.b.v=ll.b.w=ll.b.x = 0;
    for(i=7;i>=0;i--) {
    bit=1;
	for(j=0;j<32;j++,bit<<=1) {
	    ll.a[i] = bit;
	     printf("#0201:02:%08x %08x %08x %08x %08x %08x %08x %08x\n",
		ll.a[0],ll.a[1],ll.a[2],ll.a[3],
		ll.a[4],ll.a[5],ll.a[6],ll.a[7]
	      );
	    printf("#0205: ll.b.v=%lld ll.b.w=%lld ll.b.x=%lld\n",ll.b.v,ll.b.w,ll.b.x);
	}
	ll.a[i]=0;
    }
}