Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In most cases we refer 1 byte as 8 bits. Why?

  • Is this by definition or has historical reasons?
  • Why don't we use only kilobit, megabit, gigabit (or more specifically kibibit, mebibit, gibibit)?
  • Why was it necessary to multiply things with 8?

Do we define byte as 8 bits? I heard, that 1 byte can be 5, 6, etc bits too. Is this true?

share|improve this question

closed as not a real question by Journeyman Geek, sblair, Aaron Miller, pnuts, Tog Jun 20 '13 at 9:51

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
Much of this is discussed on Wikipedia: "Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit of memory in many computer architectures. The size of the byte has historically been hardware dependent and no definitive standards existed that mandated the size. The de facto standard of eight bits is a convenient power of two permitting the values 0 through 255 for one byte. The international standard ISO/IEC 80000-13 codified this common meaning." –  Karan Jun 20 '13 at 1:14
1  
@Karan I know. Every questions first comment is "there is a Wikipedia article about this...". I asked, because it wasn't asked here before and can be a good reference and an awesome Google search result. –  totymedli Jun 20 '13 at 1:17
1  
Well it doesn't seem to be a "practical, answerable question based on an actual problems that you are facing" (you seem to be asking just for the sake of asking), and seems to fit the "does not show any research effort" category. Anyway, let's see what the community thinks of it and if it does indeed end up becoming a better reference than the ones out there. P.S. Did you read the tag wiki for history? –  Karan Jun 20 '13 at 1:25
3  
@totymedli If you find that many of your questions elicit "there is a Wikipedia article about this" as the first answer or comment, it might behoove you to either do at least a modicum of research before asking, or ask better questions, or ideally both. –  Aaron Miller Jun 20 '13 at 3:32
add comment

4 Answers

It was pretty much estabilished due to the IBM System/360 EBCDIC system and the microprocessors of the 1970s.

Besides, 8 is a nice convenient power of 2, which makes it convenient to work with, and while we could work with bits, it's easier to use bytes.

share|improve this answer
add comment

Is this by definition or has historical reasons?

Mostly historical. As @Renan points out, IBM set a lot of defacto standards in the computer industry that are still followed today.

BCD also probably had a heavy influence on things working on a number of bits with a base that is a multiple of 4 - i.e. a single decimal digit 0-9 can fit in 4 bits, and two in 8 bits.

Why don't we use only kilobit, megabit, gigabit (or more specifically kibibit, mebibit, gibibit)?

Hardware specs even to this day tend to center on bits, i.e. spec sheets for individual flash, RAM, and ROM chips, usually tell you how many kilo- or megabits, etc. Can be confusing as some older terminology would say a 2MB chip meaning 2 megabit, not 2 megabyte. Software specs tend to center on bytes - as usually it's more convenient on CPUs to address memory by bytes as opposed to individual bits. Spinning hard drive storage specs tend to center on decimal kilobytes - this is a marketing move by hard drive manufacturers to round in their favor.

Why was it necessary to multiply things with 8?

Those chips of the 1970's as @Renan mentions - the concept of the CPU took off when single-chip 8-bit CPUs became very popular - RAM in a compatible format likely had a lot to do with it.

share|improve this answer
add comment
up vote 1 down vote accepted

tl;dr

We usually refer 1 byte as 8 bits because of historical reasons, but this isn't the only scenario.

  • We do not define byte as 8 bits, we say that 1 byte is 8 bit, because this is the most common usage.
  • Actually we do use kilobit (or kibibit) etc, for example in telecommunications networks. We use that unit system that fits better to the design.
  • Yes, it's much easier to handle data in 8 bit blocks.
  • No, 1 byte can be 5, 7 or 9 bits too. It depends on the design again.

Byte

A byte can be a unit for data and a datatype too. Generally we define byte as series of bits. It depends on the design and implementation if a byte is 8 bit or more/less.
For example the PDP-10 had a 32 bit architecture that used 9 bit sized bytes.

Actually when byte was "invented" it didn't even consisted from 8 bit. It was specifed as a data unit with values between 1 and 6, because the I/O devices in those times used 6 bit packages in transmission.

Because the definition of byte can be ambiguous we use octet that is by definition "a series of 8 bit".

History

The first use of byte as a term was in 1956 by Werner Buchholz during the design of the IBM 7030 Stretch. As I said before, it consisted from 6 bits, but at the end of the year they expanded it to 8 bit.

A bit only represent 2 state, if we need more, we need more bits, consequently we need to group bits some way. Thats why we have the term word.
For example we can represent the 10 number of our decimal numeral system in 4 bits:

2^4 = 16 state > 10 number.

When we first used digital transmission we did it for transfering texts. A text is made from characters, so each character has its own bit sequence to identify it. Because there are lots of languages and characters (not only letters) the need for a good character encoding system was always on topic, and as time passed better and better systems were developed to represent as much characters of the World as effectively possible. But ofcourse it started in little.

In 6 bit we can represent the most important characters of the English language.

2^6 = 64 character

These representations were used by the first computers. The set was expanded to 7 bits and the famous ASCII character-encoding scheme born.

2^7 = 128 character

With these representations, characters became the main data unit of transmission.

The EBCDIC character encoding by IBM used 8 bit. However IBM was one of the main supporters of ASCII, they didn't had time to finish their ASCII compatible periferies so they shipped their System/360 computer with their EBCDIC, baceuse this was the only way to make it to deadline. System/360 became popular so EBCDIC and 8 bit as data unit too.

In the 1970s 8-bit microprocessors that had 8 bit sized registers appeard in the market and became popular so they popularized this storage size.

Usage

Another important argument by 8 bit that 8 = 2^3 so it is a base-2 number. This makes it easy to convert to binary or to also popular hexadecimal numbers. There are loads of standars, techniques, systems that are based on packing bits into 8 or 16 size groups.

Also it is very practical to group data into bytes. For example if we have 32 bits and want to adress our memory, we can adress 8 times more memory if we adress bytes instead of each bit.

32 bit => 2^32 = 4294967296 adress.
Adressing bits: 1 bit/adress => 4294967296 bit = 512 MiB
Adressing bytes: 1 byte/adress = 8 bit/adress => 34359738368 bit = 4 GiB

We dont want to adress every piece of bit, but we can still get a specified bit from an adressed byte with shift operations.

Bit rate

We don't always use byte as a base unit. In telecommunications we use bit/second to measure the number of bits that are conveyed or processed per unit of time. Of course, for bigger numbers they use kilobit, megabit, gigabit, etc, so these units has their own fields.
This shows that each system has its own space, and we use that one that fits better to the project we work on.

share|improve this answer
add comment

I want to address this:

Why don't we use only kilobit, megabit, gigabit (or more specifically kibibit, mebibit, gibibit)?

A byte is 2^3 bits, a kilobyte is 2^10 bytes, GB is 12^30 bytes etc. The same for Kb at 2^10 bits.

Traditionally, there was the 2^x definition of a capacity or speed, such as memory. Rounding was generally done even among enthusiasts and professionals.

This rounding was inconsequential for most of the computers and early PC life span. These rounding errors were well understood as being an easy way to measure the bits converted to bytes x 1,000 for a KB, or a Kb was simply 2^10. There was a difference between 1Kb and 1024 bits, or 1KB and 8192, but it was much easier to round (And really the difference is not important when you know what is going on.

The other way to "measure" was decimal, 10^x. Marketing departments loved this, because it played off the ambiguity of 1 thousand bytes, and it was still within a small margin of rounding to convert the two. Since we already called a 56.6k modem a 56k, and 32MB of RAM was known just as that, (Or smaller even earlier).

Eventually, computers exploded and these terms were all foreign to the average user. They new bigger numbers were better, and that they needed bigger hard drives. Suddenly the rounding that professionals, enthusiasts and marketers had been using for decades was important. The average user eventually started to become confused that a 100GB drive was missing some 7GB of storage, and the bigger the drives got the more space was missing. And no hard drive maker wanted to sell the smallest drives and market a 93GB drive while another had a 100GB drive which was the same price, performance and size just with a less technical calculation of the size.

It wasn't until the late 90's that the alternate GiB started to pop up to explain what was technically the GB, and not until the mid 00's I would say before the term really caught mainstream attraction.

So, why do we not standardize or use only GB, MB etc? Because the mass adoption of computers and the necessary terminology coupled with habits of rounding definitions and marketing from the industry caused the novice users to become confused and sue companies like Western Digital for lying about hard drive specifications.

Why not GiB or MiB, because these are still new and for those who are most involved with computers less useful. If I were to ask for RAM for a server, I would be less effective at asking or ordering if I demanded 4096 GiB per core from my director bosses (And who knows what they might order if I used these terms). The precision is a hurdle, which is why GB was simplified in the first place. I need 4 GB, not GiB.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.