byte n : a sequence of 8 bits (enough to represent one character of alphanumeric data) processed as a single unit of information
EtymologyExpansion of bit, coined by Dr. Werner Buchholz in July 1956, during the early design phase for the IBM Stretch computer.http://www.trailing-edge.com/~bobbemer/BYTE.HTMhttp://archive.computerhistory.org/resources/text/IBM/Stretch/102636400.txthttp://catb.org/~esr/jargon/html/B/byte.html
- A sequence of
adjacent bits, almost
always eight, operated
on as a unit by a computer; can represent an integer from 0 to 255, a
pair of hexadecimal digits each from 0 to F, a pair of
decimal digits each from 0 to 9, a packed decimal digit and a
sign or a single character
- The word “hello” fits into 5 bytes of ASCII code.
- Cantonese: 字節 (ji6 jit3)
- Chinese: 字節, 字节 (zì jié)
- Croatian: bajt
- Czech: byte
- Esperanto: bajto, bitoko
- Finnish: tavu
- French: octet
- Galician: byte
- German: Byte
- Greek: δυφιοσυλλαβή, δυφιοοκτάδα
- trreq Hebrew
- Icelandic: tölvustafur
- Lithuanian: baitas
- Polish: bajt
- Russian: байт (bajt) , октет (oktét)
- Slovak: byte
- Spanish: byte
- Swedish: byte
- Turkish: byte
In computer science a byte (pronounced "bite", ) is a unit of measurement of information storage, most often consisting of eight bits. In many computer architectures it is a unit of memory addressing.
Originally, a byte was a small group of bits of a size convenient for data such as a single character from a Western character set. Its size was generally determined by the number of possible characters in the supported character set and was chosen to be a divisor of the computer's word size; historically, bytes have ranged from five to twelve bits. The popularity of IBM's System/360 architecture starting in the 1960s and the explosion of microcomputers based on 8-bit microprocessors in the 1980s has made eight bits by far the most common size for a byte. The term octet is widely used as a more precise synonym where ambiguity is undesirable (for example, in protocol definitions).
There has been considerable confusion about the meanings of SI prefixes used with the word "byte", such as kilo- (k or K) and mega- (M), as shown in the chart Quantities of bytes. Since computer memory comes in powers of 2 rather than 10, the industry used binary estimates of the SI-prefixed quantities. Because of the confusion, a contract specifying a quantity of bytes must define what the prefixes mean in terms of the contract (i.e., the alternative binary equivalents or the actual decimal values, or a binary estimate based on the actual values).
A byte is one of the basic integral data types in some programming languages, especially system programming languages.
To make the meaning of the table absolutely clear: A kibibyte is made up of 1,024 bytes. A mebibyte is made up of 1,024 × 1,024 bytes. The figures in the column using 1,024 raised to powers of 1, 2, 3, 4 and so on are in units of bytes.
MeaningsThe word "byte" has two closely related meanings:
- A contiguous sequence of a fixed number of bits (binary digits). The use of a byte to mean 8 bits has become nearly ubiquitous.
- A contiguous sequence of bits within a binary computer that comprises the smallest addressable sub-field of the computer's natural word-size. That is, the smallest unit of binary data on which meaningful computation, or natural data boundaries, could be applied. For example, the CDC 6000 series scientific mainframes divided their 60-bit floating-point words into 10 six-bit bytes. These bytes conveniently held Hollerith data from punched cards, typically the upper-case alphabet and decimal digits. CDC also often referred to 12-bit quantities as bytes, each holding two 6-bit display code characters, due to the 12-bit I/O architecture of the machine. The PDP-10 used assembly instructions LDB and DPB to extract bytes — these operations survive today in Common Lisp. Bytes of six, seven, or nine bits were used on some computers, for example within the 36-bit word of the PDP-10. The UNIVAC 1100/2200 series computers (now Unisys) addressed in both 6-bit (Fieldata) and 9-bit (ASCII) modes within its 36-bit word.
HistoryThe term byte was coined by Dr. Werner Buchholz in July 1956, during the early design phase for the IBM Stretch computer. Originally it was defined in instructions by a 4-bit byte-size field, allowing from one to sixteen bits (the production design reduced this to a 3-bit byte-size field, allowing from one to eight bits to be represented by a byte); typical I/O equipment of the period used six-bit bytes. A fixed eight-bit byte size was later adopted and promulgated as a standard by the System/360. The term "byte" comes from "bite," as in the smallest amount of data a computer could "bite" at once. The spelling change not only reduced the chance of a "bite" being mistaken for a "bit," but also was consistent with the penchant of early computer scientists to make up words and change spellings. A byte was also often referred to as "an 8-bit byte", reinforcing the notion that it was a tuple of n bits, and that other sizes were possible.
- A contiguous sequence of binary bits in a serial data stream, such as in modem or satellite communications, or from a disk-drive head, which is the smallest meaningful unit of data. These bytes might include start bits, stop bits, or parity bits, and thus could vary from 7 to 12 bits to contain a single 7-bit ASCII code.
- A datatype or synonym for a datatype in certain programming languages. C and C++, for example, defines byte as "addressable unit of data storage large enough to hold any member of the basic character set of the execution environment" (clause 3.6 of the C standard). Since the C char integral data type must contain at least 8 bits (clause 18.104.22.168.1), a byte in C is at least capable of holding 256 different values (signed or unsigned char does not matter). Various implementations of C and C++ define a "byte" as 8, 9, 16, 32, or 36 bitshttp://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.4http://home.att.net/~jackklein/c/inttypes.html#char. The actual number of bits in a particular implementation is documented as CHAR_BIT as implemented in the limits.h file. Java's primitive byte data type is always defined as consisting of 8 bits and being a signed data type, holding values from −128 to 127.
Early microprocessors, such as Intel 8008 (the direct predecessor of the 8080, and then 8086) could perform a small number of operations on four bits, such as the DAA (decimal adjust) instruction, and the "half carry" flag, that were used to implement decimal arithmetic routines. These four-bit quantities were called "nybbles," in homage to the then-common 8-bit "bytes."
Alternative wordsFollowing "bit," "byte," and "nybble," there have been some analogical attempts to construct unambiguous terms for bit blocks of other sizes. All of these are strictly jargon, and not very common.
- 2 bits: crumb, quad, quarter, tayste, tydbit
- 4 bits: nibble, nybble
- 5 bits: nickel, nyckle
- 10 bits: deckle
- 16 bits: plate, playte, chomp, chawmp (on a 32-bit machine)
- 18 bits: chomp, chawmp (on a 36-bit machine)
- 32 bits: dinner, dynner, gawble (on a 32-bit machine)
- 48 bits: gobble, gawble (under circumstances that remain obscure)
Abbreviation/SymbolIEEE 1541 and Metric-Interchange-Format specify "B" as the symbol for byte (e.g. MB means megabyte), while IEC 60027 seems silent on the subject. Furthermore, B means bel (see decibel), another (logarithmic) unit used in the same field. The use of B to stand for bel is consistent with the metric system convention that capitalized symbols are for units named after a person (in this case Alexander Graham Bell); usage of a capital B to stand for byte is not consistent with this convention. There is little danger of confusing a byte with a bel because the bel's sub-multiple the decibel (dB) is usually preferred, while use of the decibyte (dB) is extremely rare.
The unit symbol "kb" with a lowercase "b" is a commonly used abbreviation for "kilobyte". Use of this abbreviation leads to confusion with the alternative use of "kb" to mean "kilobit". IEEE 1541 specifies "b" as the symbol for bit; however the IEC 60027 and Metric-Interchange-Format specify "bit" (e.g. Mbit for megabit) for the symbol, achieving maximum disambiguation from byte.
French-speaking countries sometimes use an uppercase "o" for "octet". This is not consistent with SI because of the risk of confusion with the zero, and the convention that capitals are reserved for unit names derived from proper names, such as the ampere (whose symbol is A) and joule (symbol J), versus the second (symbol s) and metre (symbol m).
Lowercase "o" for "octet" is a commonly used symbol in several non-English-speaking countries, and is also used with metric prefixes (for example, "ko" and "Mo").
Names for different unitsThe prefixes used for byte measurements are usually the same as the SI prefixes used for other measurements, but have slightly different values. The former are based on powers of 1,024 (210), a convenient binary number, while the SI prefixes are based on powers of 1,000 (103), a convenient decimal number. The table below illustrates these differences. See binary prefix for further discussion.
Sometime "K" is used intead of "k". The use of "K" has as a prefix no meanings for the SI.
In 1998, the IEC, then the IEEE, published a new standard describing binary prefixes: Fractional information is usually measured in bits, nibbles, nats, or bans, where the later two are used especially in the context of information theory and not usually with computing in general.
byte in Arabic: بايت
byte in Asturian: Byte
byte in Bengali: বাইট
byte in Belarusian (Tarashkevitsa): Байт
byte in Bosnian: Bajt
byte in Bulgarian: Байт
byte in Catalan: Byte
byte in Czech: Byte
byte in Danish: Byte
byte in German: Byte
byte in Estonian: Bait
byte in Modern Greek (1453-): Byte
byte in Spanish: Byte
byte in Esperanto: Bitoko
byte in Basque: Byte
byte in Persian: بایت
byte in French: Byte
byte in Irish: Beart (ríomhaireacht)
byte in Galician: Byte
byte in Korean: 바이트
byte in Hindi: बाइट
byte in Croatian: Bajt
byte in Indonesian: Bita
byte in Interlingua (International Auxiliary Language Association): Byte
byte in Icelandic: Bæti
byte in Italian: Byte
byte in Hebrew: בית (מחשב)
byte in Kazakh: Байт
byte in Latvian: Baits
byte in Luxembourgish: Byte
byte in Lithuanian: Baitas
byte in Hungarian: Byte
byte in Macedonian: Бајт
byte in Malay (macrolanguage): Bait
byte in Dutch: Byte
byte in Japanese: バイト (情報)
byte in Norwegian: Byte
byte in Polish: Bajt (informatyka)
byte in Portuguese: Byte
byte in Russian: Байт
byte in Simple English: Byte
byte in Slovak: Bajt
byte in Slovenian: Bajt
byte in Serbian: Бајт
byte in Finnish: Tavu (tietotekniikka)
byte in Swedish: Byte (enhet)
byte in Thai: ไบต์
byte in Vietnamese: Byte
byte in Tajik: Байт
byte in Turkish: Bayt
byte in Ukrainian: Байт
byte in Urdu: بائٹ
byte in Chinese: 字节