this post was submitted on 06 Sep 2025
491 points (97.3% liked)

Programmer Humor

26203 readers
1737 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
 

Did you ever saw a char and thought: "Damn, 1 byte for a single char is pretty darn inefficient"? No? Well I did. So what I decided to do instead is to pack 5 chars, convert each char to a 2 digit integer and then concat those 5 2 digit ints together into one big unsigned int and boom, I saved 5 chars using only 4 instead of 5 bytes. The reason this works is, because one unsigned int is a ten digit long number and so I can save one char using 2 digits. In theory you could save 32 different chars using this technique (the first two digits of an unsigned int are 42 and if you dont want to account for a possible 0 in the beginning you end up with 32 chars). If you would decide to use all 10 digits you could save exactly 3 chars. Why should anyone do that? Idk. Is it way to much work to be useful? Yes. Was it funny? Yes.

Anyone whos interested in the code: Heres how I did it in C: https://pastebin.com/hDeHijX6

Yes I know, the code is probably bad, but I do not care. It was just a funny useless idea I had.

you are viewing a single comment's thread
view the rest of the comments
[–] firelizzard@programming.dev 17 points 2 days ago (2 children)

Does the efficiency of storage actually matter? Are you working on a constrained system like a microcontroller? Because if you’re working on regular software, supporting Unicode is waaaaaaaaaaay more valuable than 20% smaller text storage.

[–] ryannathans@aussie.zone 20 points 2 days ago

Unicode? Sir this is C, if the character doesn't fit into a uint8 it's scope creep and too hard

[–] cows_are_underrated@feddit.org 3 points 2 days ago (1 children)

I do sometimes work with microcontrollers, but so far I have not encountered a condition where these minimal savings could ever be useful.

[–] BartyDeCanter@lemmy.sdf.org 2 points 1 day ago

Not that long ago I was working on TI's C2000 DSPs. They have a 16 bit word size, which would make this a convenient way to pack three characters into a single word. Ther ewould then be a single leftover bit which could be used for signaling, parity, or something else.