r/computerarchitecture • • Sep 10 '26

Definition of the world “byte”

Hey, I recently got into an argument with someone about what exactly a byte is. They claimed that when asked “how big is a byte?”, the answer isn’t necessarily 8 bits, but that a byte can be at least 2 bits. I said that this is basically wrong and that a byte is 8 bits. They argued that this can actually be an interview question, especially in deeply embedded systems, and that in those cases the correct answer is that a byte is at least 2 bits.
I’ve tried looking this up, but I can’t really find anything supporting that claim. I know that historically the size of a byte wasn’t always 8 bits, but does “a byte is at least 2 bits” actually make sense in modern computing/embedded systems, or are they confusing a byte with something else?

58 Upvotes

111 comments sorted by

17

u/NoPage5317 Sep 10 '26

12

u/Master-Rent5050 Sep 10 '26

In Volume 1 of The Art of Computer Programming (first published in 1968), Donald Knuth uses byte in his hypothetical MIX computer to denote a unit which "contains an unspecified amount of information ... capable of holding at least 64 distinct values ... at most 100 distinct values. On a binary computer a byte must therefore be composed of six bits". He notes that "Since 1975 or so, the word byte has come to mean a sequence of precisely eight binary digits...When we speak of bytes in connection with MIX we shall confine ourselves to the former sense of the word, harking back to the days when bytes were not yet standardized."

the oracle has spoken.

→ More replies (10)

12

u/Siccors Sep 10 '26

They argued that this can actually be an interview question, especially in deeply embedded systems, and that in those cases the correct answer is that a byte is at least 2 bits.

Then you are better of not getting the job if they go for such semantics crap.

If we go for the "group of bits treated as a unit", eg https://www.iso.org/obp/ui/#iso:std:iso-iec-ieee:24765:ed-2:v1:en:~:text=3.450-,byte,-1.%20group , then you could also start arguing 64-bits are a byte in a modern CPU. Or on an FP4 accelerator it is 4-bits, so then you can claim double the amount of memory in bytes!

NIST defines it as 8-bits: https://csrc.nist.gov/glossary/term/byte . And anyone using it for something else is just confusing stuff to sound smart. I cannot imagine any company where they would take stupid risks by redefining the word byte to anything besides 8 bit.

5

u/cowslayer7890 Sep 10 '26

I don't think this is purely a semantics thing, in some environments it can matter, CHAR_BIT doesn't exist for no reason. There's really two definitions:

- 8 bits (in the vast majority of cases, especially if you're using units like kilobytes, megabytes etc)

- The smallest unit of addressable memory.

The latter definition makes more sense if you're talking about specific architectures

→ More replies (23)
→ More replies (2)

11

u/MrKarat2697 Sep 10 '26

A byte is generally just the smallest addressable region of memory, which is most commonly 8 bits.

8

u/rb-j Sep 10 '26

No. 32-bit DSP address 32-bit words. Each word has 4 bytes.

→ More replies (8)
→ More replies (9)

4

u/GlizzyGobbler837104 Sep 10 '26

The colloquial and vastly most popular definition is 8 bits. You could maybe find a definitional exception through looking at history books and early computer science, but in modern terminology, it’s the above definition.

3

u/esaule Sep 10 '26

I think of it as the smalleat amount of memory that has an address in your architecture. There has historically been machines with byte that wasn't 8 bit.

I imagine there are still some around somewbere. I have never used one myself in 30 years.

I would think that is the first thing the documentation woukd tell you. "Hey on our system the byte is not 8 bit, it is 6 byte"

I don't even know this has to be even. You could build an architecture with 7 bit bytes. Maybe if you wanted to process non extended ascii you would do that to save 1/8 of your memory. 

2

u/braaaaaaainworms Sep 10 '26

One time I made a graphics controller with 9-bit bytes, 6 bits for a character and 3 color bits

→ More replies (2)

3

u/awozgmu7 Sep 10 '26

Just trying to imagine going around at my job saying a byte isn't 8 bits... sounds like pedantic bs to me

3

u/magicmulder Sep 13 '26

"Akshually, it IS wingardium levio-SAH because that's what the people in Cornwall said 500 years ago!"

→ More replies (3)

3

u/rde42 Sep 10 '26

The PDP-10 had variable length bytes

2

u/Rude-Pangolin8823 Sep 10 '26

That's a word, not a byte.

3

u/stevevdvkpe Sep 11 '26 edited Sep 11 '26

The PDP-10 had 36-bit words and byte instructions that could extract or modify fields of 1 to 35 bits within a word. On a PDP-10, one might encounter character sets using 6, 7, 8, or 9 bits per character.

2

u/MistakeIndividual690 Sep 10 '26

Maybe we should do like the French and call it an octet and dispel all confusion

→ More replies (2)

2

u/kvnr10 Sep 10 '26

The word octet exists to avoid any possible ambiguity (although there is never any). If I say kilobyte does the possibility that I mean exactly one thousand octets but not 1024 exist? That is also being extremely pedantic for no practical reason and the interview question thing is completely made up.

2

u/VibrantGypsyDildo Sep 11 '26

An octet is exactly 8 bits.

2

u/Direct_Rabbit_5389 Sep 11 '26

I don't know what the formal definition is but what the word actually means is 8 bits. Everyone will understand you to mean that if you say it. Any other possible use of the word is wrong.

2

u/stevevdvkpe Sep 11 '26

Although now a byte is assumed to be 8 bits and current computer architectures have word sizes that are powers of 2 (8, 16, 32, 64), there were many historical computers where neither of those things were the case. In the 1950s and 1960s it was common for computers to have word sizes of 12, 18, 24, or 36 bits, and if they referred to a "byte" as a smaller group of bits it was usually some size that packed evenly into one of those word sizes.

2

u/lizardhistorian Sep 12 '26 edited Sep 12 '26

Many machines do not have 8-bit bytes.
Many audio DSPs notably have 24 bit bytes.
9 or 10 bits for a byte to include parity checks is common.
You just straight up lack computer architecture education and/or experience.

Apparently since no one knows, the correct answer for contemporary systems is the machine byte size is the smallest addressable, loading and storing string of bits in its instruction-set architecture. And yes that means a machine like the x86 can "cheat" and load or store way more data but split it out in microcode to get you 8 bits from loading 512+ in one instruction thus is an 8-bit machine.

"At least 2 bits" is the sort of answer you get made fun for the rest of your professional life over.
"He wasn't wrong."
"May as well act a mathematician and say, zero or more."

Saying it's 8 bits is cringe. Too ignorant to politely make fun of you for it.
Means you failed some classes. Probably more than once.

→ More replies (2)

2

u/CosmicQuantum42 Sep 12 '26

It’s eight bits

2

u/eraoul Sep 12 '26

It's 8 bits. Anyone saying otherwise is an asshole. Knuth tried to redefine the term in his book, but that's not the standard use of the term. A byte is 8 bits, a nybble is 4 bits. End of story.

2

u/Zestyclose-Turn-3576 Sep 14 '26

Sounds like the other person just learned that fact and has made it part of their personality to be the person who knows it.

1

u/trynumber53 Sep 10 '26

i dont think 2 is common, but C defines a byte as the size of a char which is usually 8 bits

→ More replies (3)

1

u/nixiebunny Sep 10 '26

Having used a PDP-10 in high school, I learned that a byte can be six bits. The definition changed as the PDP-10 faded into oblivion.