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

Programmer Humor

23420 readers
1637 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
[–] houseofleft@slrpnk.net 9 points 1 week ago (6 children)

Wait till you here about every ascii letter. . .

load more comments (6 replies)
[–] steeznson@lemmy.world 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).

[–] UnfortunateShort@lemmy.world 6 points 1 week ago

Wait till you realise the size of SSD sectors

[–] Treczoks@lemmy.world 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.

[–] visnae@lemmy.world 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)
[–] Iceblade02@lemmy.world 5 points 1 week ago

...or you can be coding assembler - it's all just bits to me

[–] Valmond@lemmy.world 5 points 1 week ago

pragma(pack) {

int a:1, b:1, ... h:1;

}

IIRC.

[–] kayzeekayzee@lemmy.blahaj.zone 5 points 1 week ago (3 children)

Redundancy is nice in the event of bitflip errors

load more comments (3 replies)
[–] ZeroGravitas@lemm.ee 5 points 1 week ago

7 Shades of Truth

[–] Jankatarch@lemmy.world 5 points 1 week ago* (last edited 1 week ago) (2 children)

I mean is it really a waste? What's minimum amount of bits most CPUs read in one cycle.

load more comments (2 replies)
[–] ssfckdt@lemmy.blahaj.zone 5 points 1 week ago (1 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 (1 replies)
[–] Amberskin@europe.pub 4 points 1 week ago

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.

[–] elucubra@sopuli.xyz 4 points 1 week ago (2 children)

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.

[–] superheitmann@programming.dev 9 points 1 week ago (1 children)

A Boolean is a true/false value. It can only be those two values and there be represented by a single bit (1 or 0).

In most languages a Boolean variable occupies the space of a full byte (8 bit) even though only a single of those bits is needed for representing the Boolean.

That's mostly because computers can't load a bit. They can only load bytes. Your memory is a single space where each byte has a numeric address. Starting from 0 and going to whatever amount of memory you have available. This is not really true because on most operating systems each process gets a virtual memory space but its true for many microcontrollers. You can load and address each f these bytes but it will always be a byte. That's why booleans are stored as bytes because youd have to pack them with other data on the same address other wise and that's getting complicated.

Talking about getting complicated, in C++ a std::vector is specialized as a bit field. Each of the values in that vector only occupy a single bit and you can get a vector of size 8 in a single byte. This becomes problematic when you want to store references or pointers to one of the elements or when you're working with them in a loop because the elements are not of type bool but some bool-reference type.

load more comments (1 replies)
[–] feddup@feddit.uk 4 points 1 week ago

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

load more comments
view more: ‹ prev next ›