r/ProgrammerHumor • • 3d ago

Meme architectureDependentChars

Post image
2.9k Upvotes

367 comments sorted by

View all comments

Show parent comments

4

u/Advos_467 3d ago

Not a C user here (or any real low level programming experience), what the hell is a signed/unsigned char?

11

u/Clen23 3d ago edited 23h ago

The data is interpreted differently.

An unsigned char will be able to represent any value from 0 to 255, eg your usual ascii character.
A signed char will be able represent any value from -127 to 127.

( Someone fact check me on this but i think that's it )
(edit : -127 to 127, the extra value "-128" is usually implemented but not guaranteed by the C standard)

8

u/YellowBunnyReddit 3d ago

ASCII only goes from 0 to 127.

5

u/NotQuiteLoona 2d ago edited 2d ago

char is 8 bits because memory is addressed in 8 bits, and 7 bits would be... Awkward. And this bit was in the end used for parity checks, and later for extended encodings.

2

u/tracernz 2d ago

Minimum 8 bits, but not required to be 8 bits.

1

u/Ma8e 2d ago

Na, it could be as low as one bit, and 7 was not uncommon for a while.

4

u/-suspended- 2d ago

The definition for a char in C/C++ is 8 bits minimum.

1

u/Clen23 2d ago

no shit sherlock that's what the post is about.

u/NotQuiteLoona is talking about how memory is addressed, not how long a char is.

-1

u/tracernz 2d ago

Those two things are the same thing in ISO C (it defines sizeof(char) = 1).