Thread overview | ||||||
---|---|---|---|---|---|---|
|
February 07, 2007 bit array | ||||
---|---|---|---|---|
| ||||
When I declare bit flags[120]; How much memory does this consure? 120 Bytes or 120 bits (packing). It would be a pain to make something like "long flags1, flags2..." and "if (flags1 & FLAGMASK) ..." to conserve memory. |
February 07, 2007 Re: bit array | ||||
---|---|---|---|---|
| ||||
Posted in reply to Orgoton | Orgoton wrote:
> When I declare
>
> bit flags[120];
>
> How much memory does this consure? 120 Bytes or 120 bits (packing).
> It would be a pain to make something like "long flags1, flags2..." and "if (flags1 & FLAGMASK) ..." to conserve memory.
It used to only consume 120 bits, when 'bit' was still a basic type.
There were some issues with that though, so now 'bit' is just a backwards-compatibility alias to 'bool'. Since 'bool' is a 1-byte type (typically) that means it'll consume 120 bytes.
|
February 07, 2007 Re: bit array | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frits van Bommel | Frits van Bommel wrote: > Orgoton wrote: >> When I declare >> >> bit flags[120]; >> >> How much memory does this consure? 120 Bytes or 120 bits (packing). >> It would be a pain to make something like "long flags1, flags2..." and >> "if (flags1 & FLAGMASK) ..." to conserve memory. > > It used to only consume 120 bits, when 'bit' was still a basic type. There were some issues with that though, so now 'bit' is just a backwards-compatibility alias to 'bool'. Since 'bool' is a 1-byte type (typically) that means it'll consume 120 bytes. As a note to this you can use std.BitArray in phobos to have a true bit array. Not sure what the Tango equivalent is. http://digitalmars.com/d/phobos/std_bitarray.html |
February 07, 2007 Re: bit array | ||||
---|---|---|---|---|
| ||||
Posted in reply to Tomas Lindquist Olsen | Tomas Lindquist Olsen wrote:
> Frits van Bommel wrote:
>
>> Orgoton wrote:
>>> When I declare
>>>
>>> bit flags[120];
>>>
>>> How much memory does this consure? 120 Bytes or 120 bits (packing).
>>> It would be a pain to make something like "long flags1, flags2..." and
>>> "if (flags1 & FLAGMASK) ..." to conserve memory.
>> It used to only consume 120 bits, when 'bit' was still a basic type.
>> There were some issues with that though, so now 'bit' is just a
>> backwards-compatibility alias to 'bool'. Since 'bool' is a 1-byte type
>> (typically) that means it'll consume 120 bytes.
>
> As a note to this you can use std.BitArray in phobos to have a true bit
> array.
> Not sure what the Tango equivalent is.
tango.core.BitArray. The implementation is essentially the same.
Sean
|
Copyright © 1999-2021 by the D Language Foundation