this post was submitted on 15 May 2025
1158 points (98.6% liked)

Programmer Humor

23417 readers
1434 users here now

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.

Rules

founded 2 years ago
MODERATORS
 
(page 2) 50 comments
sorted by: hot top controversial new old
[–] [email protected] 24 points 1 week ago (3 children)

if wasting a byte or seven matters to you, then then you need to be working in a lower level language.

load more comments (3 replies)
[–] [email protected] 22 points 1 week ago (1 children)

Joke’s on you, I always use 64 bit wide unsigned integers to store a 1 and compare to check for value.

[–] [email protected] 9 points 1 week ago

So does the cpu

[–] [email protected] 22 points 1 week ago* (last edited 1 week ago) (1 children)

I have a solution with a bit fields. Now your bool is 1 byte :

struct Flags {
    bool flag0 : 1;
    bool flag1 : 1;
    bool flag2 : 1;
    bool flag3 : 1;
    bool flag4 : 1;
    bool flag5 : 1;
    bool flag6 : 1;
    bool flag7 : 1;
};

Or for example:

struct Flags {
    bool flag0 : 1;
    bool flag1 : 1:
    int x_cord : 3;
    int y_cord : 3;
};
load more comments (1 replies)
[–] [email protected] 21 points 1 week ago (1 children)
[–] [email protected] 8 points 1 week ago (2 children)

I first thought you wrote boolean float, not sure if that's even worse.

load more comments (2 replies)
[–] [email protected] 17 points 1 week ago (1 children)
[–] [email protected] 7 points 1 week ago

Well storing that would only take half a bit.

[–] [email protected] 16 points 1 week ago (1 children)

just like electronic components, they sell the gates by the chip with multiple gates in them because it's cheaper

load more comments (1 replies)
[–] [email protected] 15 points 1 week ago (1 children)

Wait until you hear about alignment

load more comments (1 replies)
[–] [email protected] 14 points 1 week ago (6 children)

Are you telling me that no compiler optimizes this? Why?

[–] [email protected] 24 points 1 week ago (1 children)

Well there are containers that store booleans in single bits (e.g. std::vector<bool> - which was famously a big mistake).

But in the general case you don't want that because it would be slower.

[–] [email protected] 7 points 1 week ago (3 children)

Why is this a big mistake? I’m not a c++ person

load more comments (3 replies)
load more comments (5 replies)
[–] [email protected] 12 points 1 week ago

This reminds me that I actually once made a class to store bools packed in uint8 array to save bytes.

Had forgotten that. I think i have to update the list of top 10 dumbest things i ever did.

[–] [email protected] 10 points 1 week ago (7 children)

Wait till you here about every ascii letter. . .

load more comments (7 replies)
[–] [email protected] 8 points 1 week ago

We need to be able to express 0 and 1 as integers so that functionality is just being overloaded to express another concept.

Wait until the person who made this meme finds out about how many bits are being wasted on modern CPU architectures. 7 is the minimum possible wasted bits but it would be 31 on every modern computer (even 64b machines since they default to 32b ints).

[–] [email protected] 6 points 1 week ago (1 children)

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

load more comments (1 replies)
[–] [email protected] 6 points 1 week ago

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.

[–] [email protected] 6 points 1 week ago

Wait till you realise the size of SSD sectors

[–] [email protected] 6 points 1 week ago (2 children)

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

load more comments (2 replies)
load more comments
view more: ‹ prev next ›