Re: bitfield advantages

From: Graham Gilmore (gilmore@gmgate.vircom.com)
Date: 03/11/96


On Mon, 11 Mar 1996, Ben Greear wrote:

> 
> 
> With respect to unions as bitfields....
> 
> I believe a union allocates memory for the LARGEST member of the union,
> so if I understand you correctly, every union you used would have to be of...say long long or whatever....
> 
	That's correct, the union is allocated enough memory for its 
largest member.  But I'm not sure if you quite catch what I am proposing:

union bitfield {
  struct {
    bit1:  1;
    bit2:  1;
    .
    .
    bit47: 1;
  } bits;

  long long value;
}

	This way, you can access your bitfield members as 
bitfield.bits.bitx, or if you want to compare two complete bitfields, you 
can use the | operator on the bitfield.value's.


> 
> since you can use the | operator on items in your struct bitfield,
> I am wondering how big you can make them.... for example, how much of
> this would work:

	I don't know if you can use the | operator on the individual 
members of the struct bitfield.  But it's something you can check quickly 
by writing a simple program to attempt it, and see if you get the right 
answer  :)

> 
> struct bitfield {
>    little_bit:   8;
>    bigger_bit:   32;
>    rockin_on:    64;
>    fat_man:      128;
>    MIRV:         1024:
> };//
> 
> if you can do this, does the | still work?  (I would assume it would, if
> only the first part works!)
> 
	I don't quite understand what it is you're asking; can you 
clarify it?

	Graham Gilmore



This archive was generated by hypermail 2b30 : 12/07/00 PST