3GPP has an interesting way of serialising bools on the wire with ASN.1
NULL OPTIONAL
meaning only the type would be stored if true, otherwise it won't be set at all
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
3GPP has an interesting way of serialising bools on the wire with ASN.1
NULL OPTIONAL
meaning only the type would be stored if true, otherwise it won't be set at all
This guy never coded in KEIL C on an 8051 architecture. They actually use bit addressable RAM for booleans. And if you set the compiler to pass function parameters in registers, it uses the carry flag for the first bit or bool type parameter.
Wait till you realise the size of SSD sectors
I swore I read that mysql dbs will store multiple bools in a row as bit maps in one byte. I can't prove it though
pragma(pack) {
int a:1, b:1, ... h:1;
}
IIRC.
I mean is it really a waste? What's minimum amount of bits most CPUs read in one cycle.
...or you can be coding assembler - it's all just bits to me
7 Shades of Truth
Pl/1 did it right:
Dcl 1 mybools, 3 bool1 bit(1) unaligned, 3 bool2 bit(1) unaligned, … 3 bool8 bit(1) unaligned;
All eight bools are in the same byte.
Could a kind soul ELI5 this? Well, maybe ELI8. I did quite a bit of programming in the 90-00s as part of my job, although nowadays I'm more of a script kiddie.
A boolean value only needs 1 bit (on or off) for true or false. However the smallest bit of addressable memory is a byte (8 bits) hence 7 are technically wasted.
For low memory devices you could instead store 8 different Boolean values in one single byte by using bit masking instead
Now store the numbers (array):
0 0 0 1 0 1 1 2
think 8 bytes???
Does anybody ever figure in parity when comparing bit sizes and all that jazz or are we only ever concerned with storage space?