Byte: Difference between revisions
Replace misleading Avatar example with more general example showcasing video size |
|||
Line 1: | Line 1: | ||
{{Short description|Unit of digital information, usually 8 bits}} |
|||
:''For the computer industry magazine, see [[Byte (magazine)]].'' |
|||
{{About|the unit of information|other uses|Byte (disambiguation)}} |
|||
{{Infobox unit |
|||
| name = byte |
|||
| standard = unit derived from [[bit]] |
|||
| quantity = digital information, data size |
|||
| symbol = B |
|||
| symbol2 = [[octet (computing)|o]] (when 8 bits)}} |
|||
{{Anchor|4 bit|6 bit|8 bit|9 bit|12 bit}} |
|||
The '''byte''' is a [[units of information|unit of digital information]] that most commonly consists of eight [[bit]]s. 1 byte (B) = 8 bits (bit). Historically, the byte was the number of bits used to encode a single [[character (computing)|character]] of text in a computer<ref name="Buchholz_1962" /><ref name="Bemer_1959" /> and for this reason it is the smallest [[address space|addressable]] unit of [[Computer memory|memory]] in many [[computer architecture]]s. To disambiguate arbitrarily sized bytes from the common [[8-bit computing|8-bit]] definition, [[Computer network|network]] protocol documents such as the [[Internet Protocol]] ({{IETF RFC|791}}) refer to an 8-bit byte as an [[Octet (computing)|octet]].<ref> |
|||
{{cite IETF |
|||
| rfc = 791 |
|||
| last1 = Postel |
|||
| first1 = J. |
|||
| title = Internet Protocol DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION |
|||
| access-date = 28 August 2020 |
|||
| page = 43 |
|||
| language = en |
|||
| date = September 1981 |
|||
| quote = octet An eight bit byte. |
|||
}} |
|||
</ref> Those bits in an octet are usually counted with numbering from 0 to 7 or 7 to 0 depending on the [[bit numbering|bit endianness]]. |
|||
The size of the byte has historically been [[Computer hardware|hardware]]-dependent and no definitive standards existed that mandated the size. Sizes from 1 to 48 bits have been used.<ref name="Buchholz_1956_1" /><ref name="CDC_1965_3600" /><ref name="Rao_1989" /><ref name="Tafel_1971" /> The [[six-bit character code]] was an often-used implementation in early encoding systems, and computers using six-bit and nine-bit bytes were common in the 1960s. These systems often had [[Word (computer architecture)|memory words]] of 12, 18, 24, 30, 36, 48, or 60 bits, corresponding to 2, 3, 4, 5, 6, 8, or 10 six-bit bytes, and persisted, in legacy systems, into the twenty-first century. In this era, bit groupings in the instruction stream were often referred to as ''[[Syllable (computing)|syllables]]''{{efn|The term syllable was used for bytes containing instructions or constituents of instructions, not for data bytes.}} or ''slab'', before the term ''byte'' became common. |
|||
The modern [[de facto standard|''de facto'' standard]] of eight bits, as documented in ISO/IEC 2382-1:1993, is a convenient [[power of two]] permitting the [[binary number|binary-encoded]] values 0 through 255 for one byte, as 2 to the power of 8 is 256.<ref name="ISO_IEC_2382-1_1993" /> The international standard [[IEC 80000-13]] codified this common meaning. Many types of applications use information representable in eight or fewer bits and processor designers commonly optimize for this usage. The popularity of major commercial computing architectures has aided in the ubiquitous acceptance of the 8-bit byte.<ref name="CHM_1964" /> Modern architectures typically use 32- or 64-bit words, built of four or eight bytes, respectively. |
|||
The unit symbol for the byte was designated as the upper-case letter B by the [[International Electrotechnical Commission]] (IEC) and [[Institute of Electrical and Electronics Engineers]] (IEEE).<ref name="MIXF" /> Internationally, the unit ''[[Octet (computing)|octet]]'' explicitly defines a sequence of eight bits, eliminating the potential ambiguity of the term "byte".<ref name="TCPIP" /><ref name="ISO_2382-4" /> The symbol for octet, 'o', also conveniently eliminates the ambiguity in the symbol 'B' between byte and [[decibel|bel]]. |
|||
== Etymology and history <span class="anchor" id="History"></span> == |
|||
The term ''byte'' was coined by [[Werner Buchholz]] in June 1956,<ref name="Buchholz_1956_1" /><ref name="Buchholz_1977" /><ref name="Timeline_1956" />{{efn|{{anchor|Note-Dates}}Many sources erroneously indicate a birthday of the term ''byte'' in July 1956, but [[Werner Buchholz]] claimed that the term would have been coined in [[#Buchholz-1977|June 1956]]. In fact, the [[#Buchholz-1956-1|earliest document]] supporting this dates from 1956-06-11. Buchholz stated that the transition to 8-bit bytes was conceived in [[#Buchholz-1977|August 1956]], but the earliest document found using this notion dates from [[#Buchholz-1956-3|September 1956]].}} during the early design phase for the [[IBM 7030|IBM Stretch]]<ref name="Buchholz_1956_2" /><ref name="Buchholz_1956_3" /><ref name="Buchholz_1962" /><ref name="Buchholz_1977" /><ref name="Timeline_1956" /><ref name="ESR" /><ref name="Bemer_2000" /> computer, which had addressing to the bit and variable field length (VFL) instructions with a byte size encoded in the instruction.<ref name="Buchholz_1977" /> It is a deliberate respelling of ''[[bite]]'' to avoid accidental mutation to ''bit''.<ref name="Buchholz_1962" /><ref name="Buchholz_1977" /><ref name="Blaauw_1959" />{{efn|Some later machines, e.g., [[Burroughs B1700]], [[CDC 3600]], DEC PDP-6, [[DEC PDP-10]] had the ability to operate on arbitrary bytes no larger than the word size.}} |
|||
Another origin of ''byte'' for bit groups smaller than a computer's word size, and in particular groups of [[Nibble (computing)|four bits]], is on record by Louis G. Dooley, who claimed he coined the term while working with [[Jules Schwartz]] and Dick Beeler on an air defense system called [[Experimental SAGE Subsector|SAGE]] at [[MIT Lincoln Laboratory]] in 1956 or 1957, which was jointly developed by [[Rand Corporation|Rand]], MIT, and IBM.<ref name="Dooley_1995_Byte" /><ref name="Ram_Byte" /> Later on, Schwartz's language [[JOVIAL]] actually used the term, but the author recalled vaguely that it was derived from [[AN/FSQ-31]].<ref name="Schwartz_Brooks_ACM" /><ref name="Ram_Byte" /> |
|||
Early computers used a variety of four-bit [[binary-coded decimal]] (BCD) representations and the [[Sixbit|six-bit]] codes for printable graphic patterns common in the [[U.S. Army]] ([[FIELDATA]]) and [[United States Navy|Navy]]. These representations included alphanumeric characters and special graphical symbols. These sets were expanded in 1963 to seven bits of coding, called the [[American Standard Code for Information Interchange]] (ASCII) as the [[Federal Information Processing Standard]], which replaced the incompatible teleprinter codes in use by different branches of the U.S. government and universities during the 1960s. ASCII included the distinction of upper- and lowercase alphabets and a set of [[control character]]s to facilitate the transmission of written language as well as printing device functions, such as page advance and line feed, and the physical or logical control of data flow over the transmission media.<ref name="Bemer_2000" /> During the early 1960s, while also active in ASCII standardization, IBM simultaneously introduced in its product line of [[System/360]] the eight-bit [[Extended Binary Coded Decimal Interchange Code]] (EBCDIC), an expansion of their [[six-bit binary-coded decimal]] (BCDIC) representations{{efn|There was more than one BCD code page.}} used in earlier card punches.<ref name="ibm.com" /> |
|||
The prominence of the System/360 led to the ubiquitous adoption of the eight-bit storage size,<ref name="Bemer_2000" /><ref name="Buchholz_1956_3" /><ref name="Buchholz_1977" /> while in detail the EBCDIC and ASCII encoding schemes are different. |
|||
In the early 1960s, [[AT&T]] introduced [[digital telephony]] on long-distance [[trunk line]]s. These used the eight-bit [[μ-law algorithm|μ-law encoding]]. This large investment promised to reduce transmission costs for eight-bit data. |
|||
In Volume 1 of ''[[The Art of Computer Programming]]'' (first published in 1968), [[Donald Knuth]] uses ''byte'' in his hypothetical [[MIX (abstract machine)|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".<ref name="Knuth-1">{{cite book|last=Knuth|first=Donald|date=1997|title = The Art of Computer Programming: Volume 1: Fundamental Algorithms|location=Boston|publisher=Addison-Wesley|page=125|isbn=9780201896831|orig-date=1968|edition=3rd}}</ref> 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."<ref name="Knuth-1"/> |
|||
The development of [[eight-bit]] [[microprocessor]]s in the 1970s popularized this storage size. Microprocessors such as the [[Intel 8080]], the direct predecessor of the [[Intel 8086|8086]], could also perform a small number of operations on the [[4bit|four-bit]] pairs in a byte, such as the decimal-add-adjust (DAA) instruction. A four-bit quantity is often called a [[nibble]], also ''nybble'', which is conveniently represented by a single [[hexadecimal]] digit. |
|||
The term ''[[Octet (computing)|octet]]'' unambiguously specifies a size of eight bits.<ref name="Bemer_2000" /><ref name="ISO_2382-4" /> It is used extensively in [[Protocol (computing)|protocol]] definitions. |
|||
Historically, the term ''octad'' or ''octade'' was used to denote eight bits as well at least in Western Europe;<ref name="Williams_1969" /><ref name="Philips_1971" /> however, this usage is no longer common. The exact origin of the term is unclear, but it can be found in British, Dutch, and German sources of the 1960s and 1970s, and throughout the documentation of [[Philips]] mainframe computers. |
|||
== Unit symbol == |
|||
The unit symbol for the byte is specified in [[IEC 80000-13]], [[IEEE 1541]] and the [[Metric Interchange Format]]<ref name="MIXF" /> as the upper-case character B. |
|||
In the [[International System of Quantities]] (ISQ), B is also the symbol of the ''[[bel (acoustics)|bel]]'', a unit of logarithmic power ratio named after [[Alexander Graham Bell]], creating a conflict with the IEC specification. However, little danger of confusion exists, because the bel is a rarely used unit. It is used primarily in its decadic fraction, the [[decibel]] (dB), for [[signal strength]] and [[sound pressure level]] measurements, while a unit for one-tenth of a byte, the decibyte, and other fractions, are only used in derived units, such as transmission rates. |
|||
The lowercase letter o for [[Octet (computing)|octet]] is defined as the symbol for octet in IEC 80000-13 and is commonly used in languages such as [[French language|French]]<ref name="IEC_Binary" /> and [[Romanian language|Romanian]], and is also combined with metric prefixes for multiples, for example ko and Mo. |
|||
== Multiple-byte units == |
|||
{{Redirect several|Megabyte|Gigabyte|Yottabyte|KIB|MIB|GIB|TIB|PIB|EIB|Zib|YIB|RIB|QIB}} |
|||
{{For|the company|Exabyte (company)}} |
|||
{{Quantities of bytes}} |
{{Quantities of bytes}} |
||
More than one system exists to define [[unit multiple]]s based on the byte. Some systems are based on [[power of 10|powers of 10]], following the [[International System of Units]] (SI), which defines for example the prefix ''[[kilo-|kilo]]'' as 1000 (10<sup>3</sup>); other systems are based on [[Power of two|powers of two]]. Nomenclature for these systems has led to confusion. Systems based on powers of 10 use standard [[SI prefix]]es (''[[Kilo-|kilo]]'', ''[[Mega-|mega]]'', ''[[Giga-|giga]]'', ...) and their corresponding symbols (k, M, G, ...). Systems based on powers of 2, however, might use binary prefixes (''kibi'', ''mebi'', ''gibi'', ...) and their corresponding symbols (Ki, Mi, Gi, ...) or they might use the prefixes K, M, and G, creating ambiguity when the prefixes M or G are used. |
|||
While the difference between the decimal and binary interpretations is relatively small for the kilobyte (about 2% smaller than the kibibyte), the systems deviate increasingly as units grow larger (the relative deviation grows by 2.4% for each three orders of magnitude). For example, a power-of-10-based terabyte is about 9% smaller than power-of-2-based tebibyte. |
|||
A '''byte''' is commonly used as a unit of [[Computer storage|storage]] measurement in [[computer]]s, regardless of the type of data being stored. It is also one of the basic [[integral data type]]s in many [[programming language]]s. |
|||
=== Units based on powers of 10 === |
|||
==Meanings== |
|||
Definition of prefixes using powers of 10—in which 1 ''kilobyte'' (symbol kB) is defined to equal 1,000 bytes—is recommended by the International Electrotechnical Commission (IEC).<ref name="NIST">[http://physics.nist.gov/cuu/Units/binary.html Prefixes for Binary Multiples] {{webarchive|url=https://web.archive.org/web/20070808000831/http://physics.nist.gov/cuu/Units/binary.html |date=2007-08-08 }} — The NIST Reference on Constants, Units, and Uncertainty</ref> The IEC standard defines eight such multiples, up to 1 yottabyte (YB), equal to 1000<sup>8</sup> bytes.<ref>{{Cite journal |last1=Matsuoka |first1=Satoshi |last2=Sato |first2=Hitoshi |last3=Tatebe |first3=Osamu |last4=Koibuchi |first4=Michihiro |last5=Fujiwara |first5=Ikki |last6=Suzuki |first6=Shuji |last7=Kakuta |first7=Masanori |last8=Ishida |first8=Takashi |last9=Akiyama |first9=Yutaka |last10=Suzumura |first10=Toyotaro |last11=Ueno |first11=Koji |date=2014-09-15 |title=Extreme Big Data (EBD): Next Generation Big Data Infrastructure Technologies Towards Yottabyte/Year |url=https://superfri.org/index.php/superfri/article/view/24 |journal=Supercomputing Frontiers and Innovations |language=en |volume=1 |issue=2 |pages=89–107 |doi=10.14529/jsfi140206 |issn=2313-8734 |access-date=2022-05-27 |archive-date=2022-03-13 |archive-url=https://web.archive.org/web/20220313085857/https://superfri.org/index.php/superfri/article/view/24 |url-status=live |doi-access=free }}</ref> The additional prefixes ''ronna-'' for 1000<sup>9</sup> and ''quetta-'' for 1000<sup>10</sup> were adopted by the [[International Bureau of Weights and Measures]] (BIPM) in 2022.<ref>{{cite web |title=List of Resolutions for the 27th meeting of the General Conference on Weights and Measures |url=https://www.bipm.org/documents/20126/64811223/Resolutions-2022.pdf |date=2022-11-18 |access-date=2022-11-18 |archive-date=2022-11-18 |archive-url=https://web.archive.org/web/20221118153958/https://www.bipm.org/documents/20126/64811223/Resolutions-2022.pdf |url-status=live }}</ref><ref>{{cite journal |last1=Gibney |first1=Elizabeth |date=18 November 2022 |title=How many yottabytes in a quettabyte? Extreme numbers get new names |url=https://www.nature.com/articles/d41586-022-03747-9 |journal=Nature |volume= |issue= |pages= |doi=10.1038/d41586-022-03747-9 |pmid=36400954 |s2cid=253671538 |access-date=21 November 2022 |archive-date=16 January 2023 |archive-url=https://web.archive.org/web/20230116065817/https://www.nature.com/articles/d41586-022-03747-9 |url-status=live |issn = 0028-0836 }}</ref> |
|||
The word "byte" has numerous closely related meanings: |
|||
# A contiguous sequence of a ''fixed'' number of [[bit]]s (binary digits). In recent years, 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 (computer science)|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]]. |
|||
This definition is most commonly used for [[data-rate units]] in [[computer network]]s, internal bus, hard drive and flash media transfer speeds, and for the capacities of most [[storage media]], particularly [[hard drive]]s,<ref>1977 Disk/Trend Report Rigid Disk Drives, published June 1977</ref> [[Flash memory|flash]]-based storage,<ref>[http://apac.sandisk.com/Products/Catalog(1349)-SanDisk_Extreme_Ducati_Edition_USB_Flash_Drive.aspx SanDisk USB Flash Drive] {{webarchive|url=https://web.archive.org/web/20080513155718/http://apac.sandisk.com/Products/Catalog%281349%29-SanDisk_Extreme_Ducati_Edition_USB_Flash_Drive.aspx |date=2008-05-13 }} "Note: 1 megabyte (MB) = 1 million bytes; 1 gigabyte (GB) = 1 billion bytes."</ref> and [[DVD]]s.{{citation needed|date=January 2022}} [[Operating system]]s that use this definition include [[macOS]],<ref name="apple">{{cite web |title=How iOS and macOS report storage capacity |url=https://support.apple.com/en-us/HT201402 |website=Apple Support |access-date=9 January 2022 |language=en |date=27 February 2018 |archive-date=9 April 2020 |archive-url=https://web.archive.org/web/20200409170256/https://support.apple.com/en-us/HT201402 |url-status=live }}</ref> [[iOS]],<ref name="apple"/> [[Ubuntu]],<ref>{{cite web |title=UnitsPolicy |url=https://wiki.ubuntu.com/UnitsPolicy |website=Ubuntu Wiki |publisher=Ubuntu |access-date=9 January 2022 |archive-date=18 November 2021 |archive-url=https://web.archive.org/web/20211118114902/https://wiki.ubuntu.com/UnitsPolicy |url-status=live }}</ref> and [[Debian]].<ref>{{cite web |title=ConsistentUnitPrefixes |url=https://wiki.debian.org/ConsistentUnitPrefixes |website=Debian Wiki |access-date=9 January 2022 |archive-date=3 December 2021 |archive-url=https://web.archive.org/web/20211203075715/https://wiki.debian.org/ConsistentUnitPrefixes |url-status=live }}</ref> It is also consistent with the other uses of the [[SI prefix]]es in computing, such as [[Hertz#Computers|CPU clock speeds]] or [[FLOPS|measures of performance]]. |
|||
==History== |
|||
{{Unreferencedsect}}The term '''byte''' was coined by [[Werner Buchholz]] in [[1957]] during the early design phase for the [[IBM 7030|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 in a byte); typical I/O equipment of the period used six-bit units. 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. However, back in the [[1960s]], the luminaries at IBM Education Department in the UK were teaching that a bit was a Binary digIT and a byte was a BinarY TuplE (from n-tuple, i.e. [quin]tuple, [sex]tuple, [sep]tuple, [oc]tuple ...).{{fact}} A byte was also often referred to as "an 8-bit byte", reinforcing the notion that it was a tuple of <i>n</i> bits, and that other sizes were possible. Other sources have also said that the word '''byte''' comes from the following: '''B'''inar'''Y''' '''T'''abl'''E'''{{fact}} |
|||
# 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 language]]s. [[C programming language|C]], for example, defines ''byte'' as a storage unit capable of at least being large enough to hold any character of the execution environment (clause 3.5 of the C standard). Since the C <code>char</code> integral data type can hold at least 8 bits (clause 5.2.4.2.1), a byte in C is at least capable of holding 256 different values (signed or unsigned <code>char</code> doesn't matter). [[Java programming language|Java's]] primitive <code>byte</code> data type is always defined as consisting of 8 bits and being a signed data type, holding values from -128 to 127. |
|||
=== Units based on powers of 2 === |
|||
Early microprocessors, such as Intel's 8008 (the direct predecessor of the 8080, and then [[Intel 8086|8086]]) could perform a small number of operations on [[4bit|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 "[[nibble]]s," in homage to the then-common 8-bit "bytes." |
|||
A system of units based on [[powers of 2]] in which 1 kibibyte (KiB) is equal to 1,024 (i.e., 2<sup>10</sup>) bytes is defined by international standard IEC 80000-13 and is supported by national and international standards bodies ([[BIPM]], [[International Electrotechnical Commission|IEC]], [[NIST]]). The IEC standard defines eight such multiples, up to 1 yobibyte (YiB), equal to 1024<sup>8</sup> bytes. The natural binary counterparts to ''ronna-'' and ''quetta-'' were given in a consultation paper of the International Committee for Weights and Measures' Consultative Committee for Units (CCU) as ''robi-'' (Ri, 1024<sup>9</sup>) and ''quebi-'' (Qi, 1024<sup>10</sup>), but have not yet been adopted by the IEC or ISO.<ref>{{cite journal |last1=Brown |first1=Richard J. C. |date=27 April 2022 |title=Reply to "Facing a shortage of the Latin letters for the prospective new SI symbols: alternative proposal for the new SI prefixes" |url= |journal=Accreditation and Quality Assurance |volume=27 |issue= 3|pages=143–144 |doi=10.1007/s00769-022-01499-7 |s2cid=248397680 |access-date=}}</ref> |
|||
An alternative system of nomenclature for the same units (referred to here as the ''customary convention''), in which 1 ''kilobyte'' (KB) is equal to 1,024 bytes,<ref>[http://www.merriam-webster.com/dictionary/kilobyte Kilobyte – Definition and More from the Free Merriam-Webster Dictionary] {{webarchive|url=https://web.archive.org/web/20100409171320/http://www.merriam-webster.com/dictionary/kilobyte |date=2010-04-09 }}. Merriam-webster.com (2010-08-13). Retrieved on 2011-01-07.</ref><ref>[http://dictionary.reference.com/browse/kilobyte Kilobyte – Definition of Kilobyte at Dictionary.com] {{webarchive|url=https://web.archive.org/web/20100901202451/http://dictionary.reference.com/browse/kilobyte |date=2010-09-01 }}. Dictionary.reference.com (1995-09-29). Retrieved on 2011-01-07.</ref><ref>[http://www.askoxford.com/concise_oed/kilobyte?view=uk Definition of kilobyte from Oxford Dictionaries Online] {{webarchive|url=https://web.archive.org/web/20060625132017/http://www.askoxford.com/concise_oed/kilobyte?view=uk |date=2006-06-25 }}. Askoxford.com. Retrieved on 2011-01-07.</ref> 1 ''megabyte'' (MB) is equal to 1024<sup>2</sup> bytes and 1 ''gigabyte'' (GB) is equal to 1024<sup>3</sup> bytes is mentioned by a 1990s [[JEDEC]] standard. Only the first three multiples (up to GB) are mentioned by the JEDEC standard, which makes no mention of TB and larger. While confusing and incorrect,<ref>[https://www.hpe.com/psnow/resources/ebooks/a00113994en_us_v2/Prefixes_for_Binary_and_Decimal_Multiples.html Prefixes for Binary and Decimal Multiples: Binary versus decimal]</ref> the customary convention is used by the [[Microsoft Windows]] operating system<ref name="auto">{{cite web |url=http://support.microsoft.com/kb/121839 |title=Determining Actual Disk Size: Why 1.44 MB Should Be 1.40 MB |publisher=Microsoft Support |date=2003-05-06 |access-date=2014-03-25 |url-status=live |archive-url=https://web.archive.org/web/20140209012305/http://support.microsoft.com/kb/121839 |archive-date=2014-02-09 }}</ref>{{Better source needed|reason=Source is nearly 20 years old and may not reflect recent versions of Windows; need a newer reference.|date=January 2022}} and [[random-access memory]] capacity, such as main memory and [[CPU cache]] size, and in marketing and billing by telecommunication companies, such as [[Vodafone]],<ref>{{cite web|publisher=Vodafone Ireland |title=3G/GPRS data rates |url=https://www.vodafone.ie/planscosts_bus/data/|access-date=26 October 2016 |url-status=live |archive-url=https://web.archive.org/web/20161026232743/https://www.vodafone.ie/planscosts_bus/data/ |archive-date=26 October 2016}}</ref> [[AT&T]],<ref>{{cite web |publisher=AT&T |title=Data Measurement Scale |url=http://www.att.com/support_static_files/KB/KB24648.html |access-date=26 October 2016 }}{{dead link|date=December 2017 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> [[Orange S.A.|Orange]]<ref>{{cite web|publisher=Orange Romania|title=Internet Mobile Access|url=https://www.orange.ro/recharge/internet.html|access-date=26 October 2016|url-status=dead |archive-url=https://web.archive.org/web/20161026234911/https://www.orange.ro/recharge/internet.html |archive-date=26 October 2016}}</ref> and [[Telstra]].<ref>{{cite web|publisher=Telstra|title=Our Customer Terms|page=7|url=https://www.telstra.com.au/content/dam/tcom/personal/consumer-advice/pdf/intl-roaming.pdf|access-date=26 October 2016|url-status=live|archive-url=https://web.archive.org/web/20170410020355/https://www.telstra.com.au/content/dam/tcom/personal/consumer-advice/pdf/intl-roaming.pdf|archive-date=10 April 2017}}</ref> |
|||
==Alternate words== |
|||
The eight-bit byte is often called an '''[[octet (computing)|octet]]''' in formal contexts such as industry standards, as well as in [[computer network|networking]] and [[telecommunication]], in order to avoid any confusion about the number of bits involved. However, 8-bit bytes are now firmly embedded in such common standards as [[Ethernet]] and [[HTML]]. Octet is also the word used for the eight-bit quantity in many non-English languages, where the pun on ''bite'' does not translate. |
|||
For [[Computer data storage|storage]] capacity, the customary convention was used by macOS and iOS through Mac OS X 10.5 Leopard and iOS 10, after which they switched to units based on powers of 10.<ref name="apple"/> |
|||
Half of an eight-bit byte (four bits) is sometimes called a [[nibble]] (sometimes spelled ''nybble'') or a [[hex digit]]. The nibble is often called a semioctet in a networking or telecommunication context and also by some standards organizations. |
|||
=== Parochial units === |
|||
==Abbreviation/Symbol== |
|||
[[IEEE 1541]] and [http://swiss.csail.mit.edu/~jaffer/MIXF Metric-Interchange-Format] specify "B" as the symbol for byte (e.g. MB means megabyte), whilst [[IEC 60027]] seems silent on the subject. |
|||
Furthermore, B means bel (see [[decibel]]), another (logarithmic) unit used in the same field. |
|||
Various computer vendors have coined terms for data of various sizes, sometimes with different sizes for the same term even within a single vendor. These terms include ''double word'', ''half word'', ''long word'', ''quad word'', ''slab'', ''superword'' and ''syllable''. There are also informal terms. e.g., ''half byte'' and ''nybble'' for 4 bits, ''octal K'' for {{base|1000|8}}. |
|||
IEEE 1541 specifies "b" as the symbol for [[bit]]; however the [[International Electrotechnical Commission|IEC]] 60027 and Metric-Interchange-Format specify "bit" (e.g. Mbit for megabit) for the symbol, achieving maximum disambiguation from byte. |
|||
=== History of the conflicting definitions === |
|||
"b" vs. "B" confusion seems to be common enough to have inspired the creation of a dedicated website [http://www.bisnotb.com b is not B]. |
|||
[[File:Binaryvdecimal.svg|thumb|right|275px|Percentage difference between decimal and binary interpretations of the unit prefixes grows with increasing storage size]] |
|||
Contemporary{{efn|Through the 1970s there were machines with [[Decimal computer|decimal]] architectures.}} computer memory has a [[Binary addressing|binary architecture]] making a definition of memory units based on powers of 2 most practical. The use of the metric prefix ''kilo'' for binary multiples arose as a convenience, because {{val|1,024}} is approximately {{val|1,000}}.<ref name="IEC_Binary" /> This definition was popular in early decades of [[personal computing]], with products like the [[Tandon Corporation|Tandon]] 5{{1/4}}-inch [[double density|DD]] floppy format (holding {{val|368,640}} bytes) being advertised as "360 KB", following the {{val|1,024}}-byte convention. It was not universal, however. The [[Shugart Associates|Shugart]] SA-400 5{{1/4}}-inch [[floppy disk]] held 109,375 bytes unformatted,<ref>{{cite web |url=http://www.swtpc.com/mholley/SA400/SA400_Index.htm |title=SA400 minifloppy |publisher=Swtpc.com |date=2013-08-14 |access-date=2014-03-25 |url-status=dead |archive-date=2014-05-27 |archive-url=https://web.archive.org/web/20140527094602/http://www.swtpc.com/mholley/SA400/SA400_Index.htm}}</ref> and was advertised as "110 Kbyte", using the 1000 convention.<ref>{{cite web |title=Shugart Associates SA 400 minifloppy™ Disk Drive |url=http://www.swtpc.com/mholley/SA400/SA400_Datasheet.pdf |access-date=2011-06-24 |url-status=dead |archive-date=2011-06-08 |archive-url=https://web.archive.org/web/20110608195322/http://www.swtpc.com/mholley/SA400/SA400_Datasheet.pdf}}</ref> Likewise, the 8-inch [[Digital Equipment Corporation|DEC]] RX01 floppy (1975) held {{val|256,256}} bytes formatted, and was advertised as "256k".<ref>{{cite web |title=RXS/RX11 floppy disk system maintenance manual |publisher=Digital Equipment Corporation |location=Maynard, Massachusetts |date=May 1975 |url=http://bitsavers.org/pdf/dec/disc/rx01/EK-RX01-MM-002_maint_Dec76.pdf |access-date=2011-06-24 |archive-url=https://web.archive.org/web/20110423194129/http://www.bitsavers.org/pdf/dec/disc/rx01/EK-RX01-MM-002_maint_Dec76.pdf |archive-date=2011-04-23 |url-status=dead}}</ref> Some devices were advertised using a ''mixture'' of the two definitions: most notably, floppy disks advertised as "1.44 MB" have an actual capacity of {{val|1,440|u=KiB}}, the equivalent of 1.47 MB or 1.41 MiB. |
|||
French-speaking countries sometimes use an uppercase "o" for "octet". This is not allowed in [[SI]] because of the risk of confusion with the zero and the convention that capitals are reserved for unit names derived from proper names, e.g., A=[[ampere]], J=[[joule]]; s=[[second]], m=[[metre]]. |
|||
In 1995, the [[International Union of Pure and Applied Chemistry]]'s (IUPAC) Interdivisional Committee on Nomenclature and Symbols attempted to resolve this ambiguity by proposing a set of [[binary prefixes]] for the powers of 1024, including kibi (kilobinary), mebi (megabinary), and gibi (gigabinary).<ref>IUCr 1995 Report - IUPAC Interdivisional Committee on Nomenclature and Symbols (IDCNS) http://ww1.iucr.org/iucr-top/cexec/rep95/idcns.htm {{Webarchive|url=https://web.archive.org/web/20201219055254/http://ww1.iucr.org/iucr-top/cexec/rep95/idcns.htm |date=2020-12-19 }}</ref><ref>"Binary Prefix" University of Auckland Department of Computer Science https://wiki.cs.auckland.ac.nz/stageonewiki/index.php/Binary_prefix {{Webarchive|url=https://web.archive.org/web/20201016032232/https://wiki.cs.auckland.ac.nz/stageonewiki/index.php/Binary_prefix |date=2020-10-16 }}</ref> |
|||
Therefore, lowercase 'o' is good, and already in use with multiples ko, Mo [[Octet (computing)]]. |
|||
In December 1998, the [[International Electrotechnical Commission|IEC]] addressed such multiple usages and definitions by adopting the IUPAC's proposed prefixes (kibi, mebi, gibi, etc.) to unambiguously denote powers of 1024.<ref>{{cite web|url=http://physics.nist.gov/cuu/Units/binary.html|title=Prefixes for binary multiples|author=[[National Institute of Standards and Technology]]|url-status=live|archive-url=https://web.archive.org/web/20070808000831/http://physics.nist.gov/cuu/Units/binary.html|archive-date=2007-08-08}} "In December 1998 the [[International Electrotechnical Commission]] (IEC) [...] approved as an IEC International Standard names and symbols for prefixes for binary multiples for use in the fields of data processing and data transmission."</ref> Thus one kibibyte (1 KiB) is 1024<sup>1</sup> bytes = 1024 bytes, one mebibyte (1 MiB) is 1024<sup>2</sup> bytes = {{val|1048576}} bytes, and so on. |
|||
==Names for different units== |
|||
The 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 (2<sup>10</sup>), a convenient binary number, while the SI prefixes are based on powers of 1,000 (10<sup>3</sup>), a convenient decimal number. The table below illustrates these differences. See [[binary prefix]] for further discussion. |
|||
In 1999, [[Donald Knuth]] suggested calling the kibibyte a "large kilobyte" (''KKB'').<ref name=kilobyte>{{cite web | title = What is a kilobyte? | url = http://www-cs-faculty.stanford.edu/~uno/news99.html | access-date = 2010-05-20 | archive-date = 2011-06-06 | archive-url = https://web.archive.org/web/20110606103601/http://www-cs-faculty.stanford.edu/~uno/news99.html | url-status = live }}</ref> |
|||
{| class="wikitable" |
|||
! Prefix |
|||
=== Modern standard definitions === |
|||
! Name |
|||
The IEC adopted the IUPAC proposal and published the standard in January 1999.<ref>NIST "Prefixes for binary multiples" https://physics.nist.gov/cuu/Units/binary.html {{Webarchive|url=https://web.archive.org/web/20180114113918/https://physics.nist.gov/cuu/Units/binary.html |date=2018-01-14 }}</ref><ref>Amendment 2 to IEC International Standard IEC 60027-2: Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics.</ref> The IEC prefixes are part of the [[IEC 80000-13|International System of Quantities]]. The IEC further specified that the kilobyte should only be used to refer to {{val|1,000}} bytes.<ref>{{cite web |last1=Barrow |first1=Bruce |title=A Lesson in Megabytes |website=IEEE |url=https://standards.ieee.org/reading/ieee/SB/Jan97/bearer_jan97.pdf |access-date=14 December 2024 |archive-url=https://web.archive.org/web/20051217152918/http://standards.ieee.org/reading/ieee/SB/Jan97/bearer_jan97.pdf |archive-date=17 December 2005 |page=5 |date=January 1997 |url-status=dead}}</ref> |
|||
! [[SI prefix|SI]] Meaning |
|||
! [[Binary prefix|Binary]] meaning |
|||
=== Lawsuits over definition === |
|||
! Size difference |
|||
Lawsuits arising from alleged consumer confusion over the binary and decimal definitions of multiples of the byte have generally ended in favor of the manufacturers, with courts holding that the legal definition of gigabyte or GB is 1 GB = {{val|1,000,000,000}} (10<sup>9</sup>) bytes (the decimal definition), rather than the binary definition (2<sup>30</sup>, i.e., {{val|1,073,741,824}}). Specifically, the United States District Court for the Northern District of California held that "the U.S. Congress has deemed the decimal definition of gigabyte to be the 'preferred' one for the purposes of 'U.S. trade and commerce' [...] The California Legislature has likewise adopted the decimal system for all 'transactions in this state.{{' "}}<ref name="Order Granting Motion to Dismiss">{{cite web | url = https://www.courthousenews.com/wp-content/uploads/2020/01/flashdrives.pdf | title = Order Granting Motion to Dismiss | publisher = [[United States District Court for the Northern District of California]] | access-date = 2020-01-24 | archive-date = 2021-10-07 | archive-url = https://web.archive.org/web/20211007112246/https://www.courthousenews.com/wp-content/uploads/2020/01/flashdrives.pdf | url-status = live }}</ref> |
|||
|- |
|||
| k |
|||
Earlier lawsuits had ended in settlement with no court ruling on the question, such as a lawsuit against drive manufacturer [[Western Digital]].<ref name="WesternDigital">{{cite web | last = Mook | first = Nate | date = 2006-06-28 | url = http://www.betanews.com/article/Western-Digital-Settles-Capacity-Suit/1151510648 | title = Western Digital Settles Capacity Suit | publisher = betanews | access-date = 2009-03-30 | archive-date = 2009-09-07 | archive-url = https://web.archive.org/web/20090907183334/http://www.betanews.com/article/Western-Digital-Settles-Capacity-Suit/1151510648 | url-status = live }}</ref><ref name="Baskin-2006-02-01">{{cite web | last = Baskin | first = Scott D. | date = 2006-02-01 | url = http://www.wdc.com/settlement/docs/document20.htm | title = Defendant Western Digital Corporation's Brief in Support of Plaintiff's Motion for Preliminary Approval | work = Orin Safier v. Western Digital Corporation | publisher = [[Western Digital Corporation]] | access-date = 2009-03-30 | archive-date = 2009-01-02 | archive-url = https://web.archive.org/web/20090102041947/http://www.wdc.com/settlement/docs/document20.htm | url-status = dead }}</ref> Western Digital settled the challenge and added explicit disclaimers to products that the usable capacity may differ from the advertised capacity.<ref name="WesternDigital"/> Seagate was sued on similar grounds and also settled.<ref name="WesternDigital"/><ref name="Seagate">{{cite news | last = Judge | first = Peter | date = 2007-10-26 | url = https://www.zdnet.com/article/seagate-pays-out-over-gigabyte-definition/ | title = Seagate pays out over gigabyte definition | work = ZDNet | access-date = 2014-09-16 | archive-date = 2014-09-03 | archive-url = https://web.archive.org/web/20140903033455/http://www.zdnet.com/seagate-pays-out-over-gigabyte-definition-3039290393/ | url-status = live }}</ref> |
|||
| kilo |
|||
| 10<sup>3</sup> = 1000<sup>1</sup> |
|||
=== Practical examples === |
|||
| 2<sup>10</sup> = 1024<sup>1</sup> |
|||
{| class="wikitable sortable" |
|||
| 2.40% |
|||
!width="55"| Unit |
|||
|- |
|||
!width="450" class="unsortable" | Approximate equivalent |
|||
| M |
|||
|- |
|||
| mega |
|||
|rowspan="1"|bit |
|||
| 10<sup>6</sup> = 1000<sup>2</sup> |
|||
|a [[Boolean data type|Boolean]] variable indicating true (1) or false (0). |
|||
| 2<sup>20</sup> = 1024<sup>2</sup> |
|||
|- |
|||
| 4.86% |
|||
|rowspan="1"|byte |
|||
|- |
|||
|a [[Basic Latin (Unicode block)|basic Latin]] character. |
|||
| G |
|||
|- |
|||
| giga |
|||
|rowspan="2"|kilobyte |
|||
| 10<sup>9</sup> = 1000<sup>3</sup> |
|||
|text of "[[Jabberwocky]]"<!-- text is widely available, easy to count, no source needed--> |
|||
| 2<sup>30</sup> = 1024<sup>3</sup> |
|||
|- |
|||
| 7.37% |
|||
|a typical [[favicon]] |
|||
|- |
|||
| |
|- |
||
|rowspan="1"|megabyte |
|||
| tera |
|||
|text of ''[[Harry Potter and the Goblet of Fire]]''<ref>Allison Dexter, "How Many Words are in Harry Potter?", [https://wordcounter.io/blog/how-many-words-are-in-harry-potter/] {{Webarchive|url=https://web.archive.org/web/20210125205432/https://wordcounter.io/blog/how-many-words-are-in-harry-potter/|date=2021-01-25}}; shows {{val|190,637}} words</ref> |
|||
| 10<sup>12</sup> = 1000<sup>4</sup> |
|||
|- |
|||
| 2<sup>40</sup> = 1024<sup>4</sup> |
|||
|rowspan="2"|gigabyte |
|||
| 9.95% |
|||
|about half an hour of video<ref>{{Cite web |url=https://web.stanford.edu/class/cs101/bits-gigabytes.html |title=Kilobytes Megabytes Gigabytes Terabytes (Stanford University) |access-date=2020-12-12 |archive-date=2020-11-08 |archive-url=https://web.archive.org/web/20201108095242/https://web.stanford.edu/class/cs101/bits-gigabytes.html |url-status=live }}</ref> |
|||
|- |
|||
| |
|- |
||
|[[CD]]-quality uncompressed audio of ''[[The Lamb Lies Down on Broadway]]'' |
|||
| peta |
|||
|- |
|||
| 10<sup>15</sup> = 1000<sup>5</sup> |
|||
|rowspan="2"|terabyte |
|||
| 2<sup>50</sup> = 1024<sup>5</sup> |
|||
|the largest consumer hard drive in 2007<ref name="Hitachi1st">{{cite news |title=Hitachi Introduces 1-Terabyte Hard Drive |url=http://www.pcworld.com/article/128400/article.html |website=[[PC World|www.pcworld.com]] |last=Perenson |first=Melissa J. |date=4 January 2007 |access-date=5 December 2020 |archive-url=https://web.archive.org/web/20121024011417/http://www.pcworld.com/article/128400/article.html |archive-date=24 October 2012 |url-status=dead}}</ref> |
|||
| 12.59% |
|||
|- |
|- |
||
||75 hours of video, encoded at 30 Mbit/second |
|||
| E |
|||
|- |
|||
| exa |
|||
|petabyte |
|||
| 10<sup>18</sup> = 1000<sup>6</sup> |
|||
|{{val|2000}} years of [[MP3]]-encoded music<ref name="computerweekly.com">{{cite web|url=http://www.computerweekly.com/feature/What-does-a-petabyte-look-like|title=What does a petabyte look like?|access-date=19 February 2018|archive-url=https://web.archive.org/web/20180128072952/http://www.computerweekly.com/feature/What-does-a-petabyte-look-like|archive-date=28 January 2018|url-status=dead}}</ref> |
|||
| 2<sup>60</sup> = 1024<sup>6</sup> |
|||
|- |
|||
| 15.29% |
|||
|rowspan="1"|exabyte |
|||
|global monthly [[Internet traffic]] in 2004<ref>{{Cite web|url=https://www.pcworld.com/article/139885/article.html|title=Internet Could Max Out in 2 Years, Study Says|author=Gross|first=Grant|date=24 November 2007|website=[[PC World]]|archive-url=https://web.archive.org/web/20071126041511/http://www.pcworld.com/article/id,139885-pg,1/article.html|archive-date=26 November 2007|url-status=live|access-date=28 November 2007}}</ref> |
|||
|- |
|||
|zettabyte |
|||
|global yearly Internet traffic in 2016 (known as the ''[[Zettabyte Era]]'')<ref>{{Cite web|date=2016-09-09|title=The Zettabyte Era Officially Begins (How Much is That?)|url=https://blogs.cisco.com/sp/the-zettabyte-era-officially-begins-how-much-is-that|access-date=2021-08-04|website=Cisco Blogs|language=en-US|archive-date=2021-08-02|archive-url=https://web.archive.org/web/20210802021532/https://blogs.cisco.com/sp/the-zettabyte-era-officially-begins-how-much-is-that|url-status=live}}</ref> |
|||
|} |
|} |
||
== Common uses == |
|||
Fractional [[information]] is usually measured in [[bit]]s, [[Nat (information)|nat]]s, or [[Ban (information)|ban]]s. |
|||
Many [[programming language]]s define the [[data type]] ''byte''. |
|||
The [[C (programming language)|C]] and [[C++]] programming languages define ''byte'' as an "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). The C standard requires that the integral data type ''[[signedness|unsigned]] char'' must hold at least 256 different values, and is represented by at least eight bits (clause 5.2.4.2.1). Various implementations of C and C++ reserve 8, 9, 16, 32, or 36 bits for the storage of a byte.<ref name="Cline_Bytes" /><ref name="Klein_2008" />{{efn|The actual number of bits in a particular implementation is documented as <code>CHAR_BIT</code> as implemented in the file [[limits.h]].}} In addition, the C and C++ standards require that there be no gaps between two bytes. This means every bit in memory is part of a byte.<ref name="Cline_FAQ" /> |
|||
==See also== |
|||
[[Java (programming language)|Java's]] primitive data type ''byte'' is defined as eight bits. It is a signed data type, holding values from −128 to 127. |
|||
* [[Word (computer science)]] |
|||
[[.NET]] programming languages, such as [[C Sharp (programming language)|C#]], define ''byte'' as an unsigned type, and the ''sbyte'' as a signed data type, holding values from 0 to 255, and [[two's complement|−128 to 127]], respectively. |
|||
[[Category:Data unit]] |
|||
In data transmission systems, the byte is used as a contiguous sequence of bits in a serial data stream, representing the smallest distinguished unit of data. For [[asynchronous communication]] a full transmission unit usually additionally includes a start bit, 1 or 2 stop bits, and possibly a [[parity bit]], and thus its size may vary from seven to twelve bits for five to eight bits of actual data.<ref name="NWU" /> For [[synchronous communication]] the error checking usually uses bytes at the end of a [[Frame (networking)|frame]]. |
|||
[[ar:بايت]] |
|||
[[ast:Byte]] |
|||
== See also == |
|||
[[bg:Байт]] |
|||
[[ |
* [[Data]] |
||
* [[Data hierarchy]] |
|||
[[ca:Byte]] |
|||
[[ |
* [[Nibble]] |
||
* [[Octet (computing)]] |
|||
[[da:Byte]] |
|||
* [[Primitive data type]] |
|||
[[de:Byte]] |
|||
[[ |
* [[Tryte]] |
||
* [[Word (computer architecture)]] |
|||
[[es:Byte]] |
|||
[[eo:Bitoko]] |
|||
== Notes == |
|||
[[eu:Byte]] |
|||
<div style="list-style-type: lower-alpha"> |
|||
[[fa:بایت]] |
|||
{{#tag:references| |
|||
[[fr:byte]] |
|||
[[gl:Byte]] |
|||
|group=lower-alpha|responsive=0}} |
|||
[[ko:바이트]] |
|||
</div> |
|||
[[hr:Bajt]] |
|||
<!-- |
|||
[[id:Byte]] |
|||
[[ia:Byte]] |
|||
@ CE 2022-08-19: |
|||
[[it:Byte]] |
|||
We would have to degrade on using this clumsy workaround for MediaWiki's broken implementation on resolving "<ref>"s. |
|||
[[he:בית (מחשב)]] |
|||
[[lv:Baits]] |
|||
--> |
|||
[[lt:Baitas]] |
|||
[[hu:Bájt]] |
|||
== References == |
|||
[[ms:Bait]] |
|||
{{reflist|refs= |
|||
[[nl:Byte]] |
|||
[[ja:バイト (情報)]] |
|||
<ref name="Buchholz_1956_1"> |
|||
[[no:Byte]] |
|||
{{anchor|Buchholz-1956-1}} |
|||
[[pl:Bajt (informatyka)]] |
|||
<!----> |
|||
[[pt:Byte]] |
|||
{{cite book |
|||
[[ro:Octet]] |
|||
|title=The Link System |
|||
[[ru:Байт]] |
|||
|chapter=7. The Shift Matrix |
|||
[[simple:Byte]] |
|||
|first=Werner |
|||
[[sk:Bajt]] |
|||
|last=Buchholz |
|||
[[sl:Bajt]] |
|||
|author-link=Werner Buchholz |
|||
[[sr:Бајт]] |
|||
|date=1956-06-11 |
|||
[[fi:Tavu (tietotekniikka)]] |
|||
|id=[[IBM Stretch|Stretch]] Memo No. 39G |
|||
[[sv:Byte (enhet)]] |
|||
|publisher=[[IBM]] |
|||
[[th:ไบต์]] |
|||
|pages=5–6 |
|||
[[vi:Byte]] |
|||
|chapter-url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-07/102632284.pdf |
|||
[[tr:Bayt]] |
|||
|access-date=2016-04-04 |
|||
[[uk:Байт]] |
|||
|url-status=dead |
|||
[[zh:位元組]] |
|||
|archive-url=https://web.archive.org/web/20170404152534/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-07/102632284.pdf |
|||
|archive-date=2017-04-04}} |
|||
{{poem quote| |
|||
[...] Most important, from the point of view of editing, will be the ability to handle any characters or digits, from 1 to 6 bits long. |
|||
Figure 2 shows the Shift Matrix to be used to convert a 60-bit [[word (computer architecture)|word]], coming from Memory in parallel, into [[character (computing)|characters]], or 'bytes' as we have called them, to be sent to the [[serial adder|Adder]] serially. The 60 bits are dumped into [[magnetic core]]s on six different levels. Thus, if a 1 comes out of position 9, it appears in all six cores underneath. Pulsing any diagonal line will send the six bits stored along that line to the Adder. The Adder may accept all or only some of the bits. |
|||
Assume that it is desired to operate on 4 bit [[decimal digit]]s, starting at the right. The 0-diagonal is pulsed first, sending out the six bits 0 to 5, of which the Adder accepts only the first four (0-3). Bits 4 and 5 are ignored. Next, the 4 diagonal is pulsed. This sends out bits 4 to 9, of which the last two are again ignored, and so on. |
|||
It is just as easy to use all six bits in [[alphanumeric]] work, or to handle bytes of only one bit for logical analysis, or to offset the bytes by any number of bits. All this can be done by pulling the appropriate shift diagonals. An analogous matrix arrangement is used to change from serial to parallel operation at the output of the adder. [...]}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Buchholz_1956_2"> |
|||
{{cite book |
|||
|title=Memory Word Length |
|||
|chapter=5. Input-Output |
|||
|first=Werner |
|||
|last=Buchholz |
|||
|author-link=Werner Buchholz |
|||
|date=1956-07-31 |
|||
|id=[[IBM Stretch|Stretch]] Memo No. 40 |
|||
|publisher=[[IBM]] |
|||
|page=2 |
|||
|chapter-url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-08/102632289.pdf |
|||
|access-date=2016-04-04 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20170404160423/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-08/102632289.pdf |
|||
|archive-date=2017-04-04}} |
|||
{{poem quote| |
|||
[...] 60 is a multiple of 1, 2, 3, 4, 5, and 6. Hence bytes of length from 1 to 6 bits can be packed efficiently into a 60-bit [[word (computer architecture)|word]] without having to split a byte between one word and the next. If longer bytes were needed, 60 bits would, of course, no longer be ideal. With present applications, 1, 4, and 6 bits are the really important cases. |
|||
With 64-bit words, it would often be necessary to make some compromises, such as leaving 4 bits unused in a word when dealing with 6-bit bytes at the input and output. However, the LINK Computer can be equipped to edit out these gaps and to permit handling of bytes which are split between words. [...]}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Buchholz_1956_3"> |
|||
{{anchor|Buchholz-1956-3}} |
|||
<!----> |
|||
{{cite book |
|||
|title=Memory Word Length and Indexing |
|||
|chapter=2. Input-Output Byte Size |
|||
|first=Werner |
|||
|last=Buchholz |
|||
|author-link=Werner Buchholz |
|||
|date=1956-09-19 |
|||
|id=[[IBM Stretch|Stretch]] Memo No. 45 |
|||
|publisher=[[IBM]] |
|||
|page=1 |
|||
|chapter-url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-08/102632292.pdf |
|||
|access-date=2016-04-04 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20170404161611/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/06-08/102632292.pdf |
|||
|archive-date=2017-04-04}} |
|||
{{poem quote| |
|||
[...] The maximum input-output byte size for serial operation will now be 8 bits, not counting any error detection and correction bits. Thus, the Exchange will operate on an 8-bit byte basis, and any input-output units with less than 8 bits per byte will leave the remaining bits blank. The resultant gaps can be edited out later by programming [...]}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Buchholz_1962"> |
|||
{{anchor|Buchholz-1962}} |
|||
<!----> |
|||
{{citation |
|||
|title=Planning a Computer System - Project Stretch |
|||
|first1=Gerrit Anne |
|||
|last1=Blaauw |
|||
|author-link1=Gerrit Anne Blaauw |
|||
|first2=Frederick Phillips |
|||
|last2=Brooks, Jr. |
|||
|author-link2=Frederick Phillips Brooks, Jr. |
|||
|first3=Werner |
|||
|last3=Buchholz |
|||
|author-link3=Werner Buchholz |
|||
|editor-first=Werner |
|||
|editor-last=Buchholz |
|||
|editor-link=Werner Buchholz |
|||
|publisher=[[McGraw-Hill Book Company, Inc.]] / The Maple Press Company, York, PA. |
|||
|lccn=61-10466 |
|||
|year=1962 |
|||
|chapter=Chapter 4: Natural Data Units |
|||
|pages=39–40 |
|||
|chapter-url=http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/Buchholz_102636426.pdf |
|||
|access-date=2017-04-03 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20170403014651/http://archive.computerhistory.org/resources/text/IBM/Stretch/pdfs/Buchholz_102636426.pdf |
|||
|archive-date=2017-04-03}} |
|||
{{poem quote| |
|||
Terms used here to describe the structure imposed by the machine design, in addition to ''[[bit]]'', are listed below. |
|||
''Byte'' denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than ''[[character (computing)|character]]'' is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from ''[[bite]]'', but respelled to avoid accidental mutation to ''bit''.) |
|||
A ''[[Word (unit)|word]]'' consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. [[Word size]] is thus defined as a structural property of the memory. (The term ''[[catena (unit)|catena]]'' was coined for this purpose by the designers of the [[Groupe Bull|Bull]] {{ill|Bull Gamma 60{{!}}GAMMA 60|fr|Gamma 60}} computer.) |
|||
''[[Block (data storage)|Block]]'' refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program.}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Bemer_1959"> |
|||
<span name="Bemer_1959"></span> |
|||
<!----> |
|||
{{citation |
|||
|first=Robert William |
|||
|last=Bemer |
|||
|author-link=Robert William Bemer |
|||
|title=A proposal for a generalized card code of 256 characters |
|||
|journal=[[Communications of the ACM]] |
|||
|volume=2 |
|||
|number=9 |
|||
|pages=19–23 |
|||
|year=1959 |
|||
|doi=10.1145/368424.368435 |
|||
|s2cid=36115735|doi-access=free |
|||
}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="CHM_1964"> |
|||
{{cite web |
|||
|title=Internet History of 1960s # 1964 |
|||
|publisher=[[Computer History Museum]] |
|||
|date=2017 |
|||
|orig-year=2015 |
|||
|url=https://www.computerhistory.org/internethistory/1960s/#1964 |
|||
|access-date=2022-08-17 |
|||
|url-status=live |
|||
|archive-url=https://web.archive.org/web/20220624184757/https://www.computerhistory.org/internethistory/1960s/#1964 |
|||
|archive-date=2022-06-24}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="MIXF"> |
|||
{{cite web |
|||
|title=Metric-Interchange-Format |
|||
|first=Aubrey |
|||
|last=Jaffer |
|||
|author-link=Aubrey Jaffer |
|||
|date=2011 |
|||
|orig-year=2008 |
|||
|url=https://people.csail.mit.edu/jaffer/MIXF/ |
|||
|access-date=2017-04-03 |
|||
|url-status=live |
|||
|archive-url=https://web.archive.org/web/20170403121705/https://people.csail.mit.edu/jaffer/MIXF/ |
|||
|archive-date=2017-04-03}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="TCPIP"> |
|||
{{cite web |
|||
|title=The TCP/IP Guide - Binary Information and Representation: Bits, Bytes, Nibbles, Octets and Characters - Byte versus Octet |
|||
|version=3.0 |
|||
|date=2005-09-20 |
|||
|orig-year=2001 |
|||
|first=Charles M. |
|||
|last=Kozierok |
|||
|url=http://www.tcpipguide.com/free/t_BinaryInformationandRepresentationBitsBytesNibbles-3.htm |
|||
|access-date=2017-04-03 |
|||
|url-status=live |
|||
|archive-url=https://web.archive.org/web/20170403122042/http://www.tcpipguide.com/free/t_BinaryInformationandRepresentationBitsBytesNibbles-3.htm |
|||
|archive-date=2017-04-03}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Timeline_1956"> |
|||
{{cite web |
|||
|title=Timeline of the IBM Stretch/Harvest era (1956-1961) |
|||
|publisher=[[Computer History Museum]] |
|||
|date=June 1956 |
|||
|url=http://archive.computerhistory.org/resources/text/IBM/Stretch/102636400.txt |
|||
|access-date=2017-04-03 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20160429212717/http://archive.computerhistory.org/resources/text/IBM/Stretch/102636400.txt |
|||
|archive-date=2016-04-29}} |
|||
{{poem quote| |
|||
1956 Summer: [[Gerrit Blaauw]], [[Fred Brooks]], [[Werner Buchholz]], [[John Cocke (computer scientist)|John Cocke]] and Jim Pomerene join the [[IBM Stretch|Stretch]] team. Lloyd Hunter provides [[transistor]] leadership. |
|||
{{sic|1956 July|expected=1956 June}}: In a report Werner Buchholz lists the advantages of a 64-bit word length for Stretch. It also supports [[NSA]]'s requirement for 8-bit bytes. Werner's term "Byte" first popularized in this memo.}} |
|||
NB. This timeline erroneously specifies the birth date of the term "byte" as ''[[#Note-Dates|July 1956]]'', while Buchholz actually used the term as early as ''[[#Buchholz-1956-1|June 1956]]''. |
|||
</ref> |
|||
<!----> |
|||
<ref name="ESR"> |
|||
{{cite web |
|||
|title=byte definition |
|||
|first=Eric Steven |
|||
|last=Raymond |
|||
|author-link=Eric Steven Raymond |
|||
|date=2017 |
|||
|orig-year=2003 |
|||
|url=http://catb.org/~esr/jargon/html/B/byte.html |
|||
|access-date=2017-04-03 |
|||
|url-status=live |
|||
|archive-url=https://web.archive.org/web/20170403120304/http://catb.org/~esr/jargon/html/B/byte.html |
|||
|archive-date=2017-04-03}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Blaauw_1959"> |
|||
{{anchor|Blaauw-1959}} |
|||
<!----> |
|||
{{cite journal |
|||
|title=Processing Data in Bits and Pieces |
|||
|first1=Gerrit Anne |
|||
|last1=Blaauw |
|||
|author-link1=Gerrit Anne Blaauw |
|||
|first2=Frederick Phillips |
|||
|last2=Brooks, Jr. |
|||
|author-link2=Frederick Phillips Brooks, Jr. |
|||
|first3=Werner |
|||
|last3=Buchholz |
|||
|author-link3=Werner Buchholz |
|||
|journal=[[IRE Transactions on Electronic Computers]] |
|||
|date=June 1959 |
|||
|page=121}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Buchholz_1977"> |
|||
{{anchor|Buchholz-1977}} |
|||
<!----> |
|||
{{cite journal |
|||
|last=Buchholz |
|||
|first=Werner |
|||
|author-link=Werner Buchholz |
|||
|title=The Word "Byte" Comes of Age... |
|||
|journal=[[Byte Magazine]] |
|||
|date=February 1977 |
|||
|volume=2 |
|||
|issue=2 |
|||
|page=144 |
|||
|url=https://archive.org/details/byte-magazine-1977-02/page/n145/mode/1up}} |
|||
{{poem quote| |
|||
''We received the following from W Buchholz, one of the individuals who was working on IBM's Project Stretch in the mid 1950s. His letter tells the story.'' |
|||
Not being a regular reader of your magazine, I heard about the question in the November 1976 issue regarding the origin of the term "byte" from a colleague who knew that I had perpetrated this piece of jargon ''[see page 77 of November 1976 BYTE, "Olde Englishe"]''. I searched my files and could not locate a birth certificate. But I am sure that "byte" is coming of age in 1977 with its 21st birthday. |
|||
Many have assumed that byte, meaning 8 bits, originated with the IBM System/360, which spread such bytes far and wide in the mid-1960s. The editor is correct in pointing out that the term goes back to the earlier Stretch computer (but incorrect in that Stretch was the first, not the last, of IBM's second-generation transistorized computers to be developed). |
|||
The first reference found in the files was contained in an internal memo written in June 1956 during the early days of developing [[IBM Stretch|Stretch]]. A byte was described as consisting of any number of parallel bits from one to six. Thus a byte was assumed to have a length appropriate for the occasion. Its first use was in the context of the input-output equipment of the 1950s, which handled six bits at a time. The possibility of going to 8-bit bytes was considered in [[#Note-Dates|August 1956]] and incorporated in the design of Stretch [[#Buchholz-1956-3|shortly thereafter]]. |
|||
The first published reference to the term occurred in 1959 in a paper '[[#Blaauw-1959|Processing Data in Bits and Pieces]]' by [[Gerrit Anne Blaauw|G A Blaauw]], [[Frederick Phillips Brooks, Jr.|F P Brooks Jr]] and [[Werner Buchholz|W Buchholz]] in the ''[[IRE Transactions on Electronic Computers]]'', June 1959, page 121. The notions of that paper were elaborated in [[#Buchholz-1962|Chapter 4 of ''Planning a Computer System (Project Stretch)'']], edited by W Buchholz, McGraw-Hill Book Company (1962). The rationale for coining the term was explained there on page 40 as follows: |
|||
:: Byte ''denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than'' character ''is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (ie, different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from'' [[bite]], ''but respelled to avoid accidental mutation to'' bit.'')'' |
|||
[[System/360]] took over many of the Stretch concepts, including the basic byte and word sizes, which are powers of 2. For economy, however, the byte size was fixed at the 8 bit maximum, and addressing at the bit level was replaced by byte addressing. |
|||
Since then the term byte has generally meant 8 bits, and it has thus passed into the general vocabulary. |
|||
Are there any other terms coined especially for the computer field which have found their way into general dictionaries of English language?}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Bemer_2000"> |
|||
{{cite web |
|||
|title=Why is a byte 8 bits? Or is it? |
|||
|first=Robert William |
|||
|last=Bemer |
|||
|author-link=Robert William Bemer |
|||
|date=2000-08-08 |
|||
|work=Computer History Vignettes |
|||
|url=http://www.bobbemer.com/BYTE.HTM |
|||
|access-date=2017-04-03 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20170403130829/http://www.bobbemer.com/BYTE.HTM |
|||
|archive-date=2017-04-03}} |
|||
{{poem quote| |
|||
I came to work for [[IBM]], and saw all the confusion caused by the 64-character limitation. Especially when we started to think about word processing, which would require both upper and lower case. |
|||
''Add 26 lower case letters to 47 existing, and one got 73 -- 9 more than 6 bits could represent.'' |
|||
I even made a proposal (in view of [[IBM Stretch|STRETCH]], the very first computer I know of with an 8-bit byte) that would extend the number of [[punch card]] character codes to 256 [[#Bemer_1959|[1]]]. |
|||
''Some folks took it seriously. I thought of it as a spoof.'' |
|||
So some folks started thinking about 7-bit characters, but this was ridiculous. With IBM's STRETCH computer as background, handling 64-character words divisible into groups of 8 (I designed the character set for it, under the guidance of Dr. [[Werner Buchholz]], the man who DID coin the term "byte" for an 8-bit grouping). [2] It seemed reasonable to make a universal 8-bit character set, handling up to 256. In those days my mantra was "powers of 2 are magic". And so the group I headed developed and justified such a proposal [3]. |
|||
''That was a little too much progress when presented to the standards group that was to formalize ASCII, so they stopped short for the moment with a 7-bit set, or else an 8-bit set with the upper half left for future work.'' |
|||
The [[IBM System 360|IBM 360]] used 8-bit characters, although not ASCII directly. Thus Buchholz's "byte" caught on everywhere. I myself did not like the name for many reasons. The design had 8 bits moving around in parallel. But then came a new IBM part, with 9 bits for self-checking, both inside the CPU and in the [[tape drive]]s. I exposed this 9-bit byte to the press in 1973. But long before that, when I headed software operations for [[Cie. Bull]] in France in 1965-66, I insisted that 'byte' be deprecated in favor of "[[octet (computing)|octet]]". |
|||
''You can notice that my preference then is now the preferred term.'' |
|||
It is justified by new communications methods that can carry 16, 32, 64, and even 128 bits in parallel. But some foolish people now refer to a "16-bit byte" because of this parallel transfer, which is visible in the [[UNICODE]] set. I'm not sure, but maybe this should be called a "[[hextet]]". |
|||
''But you will notice that I am still correct. Powers of 2 are still magic!''}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="IEC_Binary"><br/> |
|||
[<br/> |
|||
|*| About bits and bytes: prefixes for binary multiples - IEC<br/> |
|||
|*| v0: https://web.archive.org/web/20090818042050/http://www.iec.ch/online_news/etech/arch_2003/etech_0503/focus.htm<br/> |
|||
|*| v1: https://www.iec.ch/prefixes-binary-multiples {{Webarchive|url=https://web.archive.org/web/20210816011633/https://www.iec.ch/prefixes-binary-multiples |date=2021-08-16 }} ]</ref> |
|||
<!----> |
|||
<ref name="Williams_1969"> |
|||
{{cite book |
|||
|title=British Commercial Computer Digest: Pergamon Computer Data Series |
|||
|first=R. H. |
|||
|last=Williams |
|||
|publisher=[[Pergamon Press]] |
|||
|year=1969 |
|||
|isbn=1483122107 |
|||
}} {{ISBN|978-1483122106}}{{clarify|date=August 2022|reason=AbeBooks.de has this ISBN for a 2014 edition. WorldCat does not have this ISBN.}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Philips_1971"> |
|||
{{cite web |
|||
|title=Philips Data Systems' product range |
|||
|publisher=[[Philips]] |
|||
|date=April 1971 |
|||
|url=http://www.intact-reunies.nl/pdf/product1971.pdf |
|||
|access-date=2015-08-03 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20160304072023/http://www.intact-reunies.nl/pdf/product1971.pdf |
|||
|archive-date=2016-03-04}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Cline_Bytes">{{cite web |
|||
|first=Marshall |
|||
|last=Cline |
|||
|url=https://isocpp.org/wiki/faq/intrinsic-types#very-large-bytes |
|||
|title=I could imagine a machine with 9-bit bytes. But surely not 16-bit bytes or 32-bit bytes, right? |
|||
|access-date=2015-06-18 |
|||
|archive-date=2019-03-21 |
|||
|archive-url=https://web.archive.org/web/20190321232538/https://isocpp.org/wiki/faq/intrinsic-types#very-large-bytes |
|||
|url-status=live |
|||
}}</ref> |
|||
<!----> |
|||
<ref name="Klein_2008"> |
|||
{{Citation |
|||
|last=Klein |
|||
|first=Jack |
|||
|year=2008 |
|||
|title=Integer Types in C and C++ |
|||
|url=http://home.att.net/~jackklein/c/inttypes.html#char |
|||
|archive-url=https://web.archive.org/web/20100327225121/http://home.att.net/~jackklein/c/inttypes.html#char |
|||
|archive-date=2010-03-27 |
|||
|access-date=2015-06-18}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Cline_FAQ">{{cite web |
|||
|first=Marshall |
|||
|last=Cline |
|||
|url=https://isocpp.org/wiki/faq/intrinsic-types#bytes-review |
|||
|title=C++ FAQ: the rules about bytes, chars, and characters |
|||
|access-date=2015-06-18 |
|||
|archive-date=2019-03-21 |
|||
|archive-url=https://web.archive.org/web/20190321232538/https://isocpp.org/wiki/faq/intrinsic-types#bytes-review |
|||
|url-status=live |
|||
}}</ref> |
|||
<!----> |
|||
<ref name="NWU">{{cite web |
|||
|publisher=Northwestern University |
|||
|url=http://www.ece.northwestern.edu/local-apps/matlabhelp/techdoc/matlab_external/ch_seri8.html |
|||
|title=External Interfaces/API |
|||
|access-date=2016-09-02 |
|||
|archive-date=2018-08-09 |
|||
|archive-url=https://web.archive.org/web/20180809063331/http://www.ece.northwestern.edu/local-apps/matlabhelp/techdoc/matlab_external/ch_seri8.html |
|||
|url-status=live |
|||
}}</ref> |
|||
<!----> |
|||
<ref name="CDC_1965_3600"> |
|||
{{cite book |
|||
|title=3600 Computer System - Reference Manual |
|||
|date=1966-10-11 |
|||
|orig-year=1965 |
|||
|version=K |
|||
|publisher=[[Control Data Corporation]] (CDC) |
|||
|location=St. Paul, Minnesota, US |
|||
|id=60021300 |
|||
|url=http://bitsavers.org/pdf/cdc/3x00/48bit/60021300K_3600_SysRef_Oct66.pdf |
|||
|access-date=2017-04-05 |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/20170405154001/http://bitsavers.informatik.uni-stuttgart.de/pdf/cdc/3x00/48bit/60021300K_3600_SysRef_Oct66.pdf |
|||
|archive-date=2017-04-05 |
|||
|quote=Byte - A partition of a computer word.}}<br/> |
|||
NB. Discusses 12-bit, 24-bit and 48-bit bytes. |
|||
</ref> |
|||
<!----> |
|||
<ref name="Dooley_1995_Byte"> |
|||
{{cite journal |
|||
|title=Byte: The Word |
|||
|first=Louis G. |
|||
|last=Dooley |
|||
|date=February 1995 |
|||
|journal=[[BYTE]] |
|||
|location=Ocala, FL, US |
|||
|url=http://www.byte.com/art/9502/sec2/art12.htm |
|||
|url-status=dead |
|||
|archive-url=https://web.archive.org/web/19961220122258/http://www.byte.com/art/9502/sec2/art12.htm |
|||
|archive-date=1996-12-20}} |
|||
{{poem quote| |
|||
The word byte was coined around 1956 to 1957 at [[MIT Lincoln Laboratory|MIT Lincoln Laboratories]] within a project called [[Experimental SAGE Subsector|SAGE]] (the North American Air Defense System), which was jointly developed by [[Rand Corporation|Rand]], Lincoln Labs, and [[IBM]]. In that era, computer memory structure was already defined in terms of [[word size (computing)|word size]]. A word consisted of x number of [[bit]]s; a bit represented a binary notational position in a word. Operations typically operated on all the bits in the full word. |
|||
We coined the word byte to refer to a logical set of bits less than a full word size. At that time, it was not defined specifically as x bits but typically referred to as a set of [[Nibble (computing)|4 bits]], as that was the size of most of our coded data items. Shortly afterward, I went on to other responsibilities that removed me from SAGE. After having spent many years in Asia, I returned to the U.S. and was bemused to find out that the word byte was being used in the new microcomputer technology to refer to the basic addressable memory unit.}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Schwartz_Brooks_ACM"> |
|||
{{citation |
|||
|title=Origin of the term "byte", 1956 |
|||
|url=http://www.xent.com/FoRK-archive/july99/0646.html |
|||
|access-date=2022-08-17 |
|||
|url-status=live |
|||
|archive-url=https://web.archive.org/web/20170410125522/http://www.xent.com/FoRK-archive/july99/0646.html |
|||
|archive-date=2017-04-10}} |
|||
{{poem quote| |
|||
A question-and-answer session at an [[ACM conference]] on the history of programming languages included this exchange: |
|||
[ [[John Goodenough]]: |
|||
You mentioned that the term "byte" is used in [[JOVIAL]]. Where did the term come from? ] |
|||
[ [[Jules Schwartz]] (inventor of JOVIAL): |
|||
As I recall, the [[AN/FSQ-31]], a totally different computer than the [[IBM 709|709]], was byte oriented. I don't recall for sure, but I'm reasonably certain the description of that computer included the word "byte," and we used it. ] |
|||
[ [[Fred Brooks]]: |
|||
May I speak to that? [[Werner Buchholz]] coined the word as part of the definition of [[IBM STRETCH|STRETCH]], and the AN/FSQ-31 picked it up from STRETCH, but Werner is very definitely the author of that word. ] |
|||
[ Schwartz: |
|||
That's right. Thank you. ]}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Ram_Byte"> |
|||
{{cite web |
|||
|first=Stefan |
|||
|last=Ram |
|||
|title=Erklärung des Wortes "Byte" im Rahmen der Lehre binärer Codes |
|||
|date=17 January 2003 |
|||
|language=de |
|||
|publisher=[[Freie Universität Berlin]] |
|||
|location=Berlin, Germany |
|||
|url=http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/code_byte_de |
|||
|access-date=2017-04-10 |
|||
|archive-date=2021-06-10 |
|||
|archive-url=https://web.archive.org/web/20210610055304/http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/code_byte_de |
|||
|url-status=live |
|||
}}</ref> |
|||
<!----> |
|||
<ref name="ISO_IEC_2382-1_1993"> |
|||
{{cite book |
|||
|title=ISO/IEC 2382-1: 1993, Information technology - Vocabulary - Part 1: Fundamental terms |
|||
|date=1993}} |
|||
{{poem quote| |
|||
byte: |
|||
A string that consists of a number of bits, treated as a unit, and usually representing a character or a part of a character. |
|||
NOTES: |
|||
1 The number of bits in a byte is fixed for a given data processing system. |
|||
2 The number of bits in a byte is usually 8.}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="ISO_2382-4"> |
|||
{{cite book |
|||
|title=ISO 2382-4, Organization of data |
|||
|edition=2 |
|||
|quote=byte, octet, 8-bit byte: A string that consists of eight bits.}} |
|||
</ref> |
|||
<!----> |
|||
<ref name="Rao_1989"> |
|||
{{cite book |
|||
|title=Error-Control Coding for Computer Systems |
|||
|first1=Thammavaram R. N. |
|||
|last1=Rao |
|||
|first2=Eiji |
|||
|last2=Fujiwara |
|||
|editor-first=Edward J. |
|||
|editor-last=McCluskey |
|||
|series=Prentice Hall Series in Computer Engineering |
|||
|date=1989 |
|||
|lccn=88-17892 |
|||
|edition=1 |
|||
|isbn=0-13-283953-9 |
|||
|publisher=[[Prentice Hall]] |
|||
|location=Englewood Cliffs, NJ, US|url=https://archive.org/details/errorcontrolcodi00unse}}<br/> |
|||
NB. Example of the usage of a code for "4-bit bytes". |
|||
</ref> |
|||
<!----> |
|||
<ref name="Tafel_1971"> |
|||
{{cite book |
|||
|title=Einführung in die digitale Datenverarbeitung |
|||
|language=de |
|||
|trans-title=Introduction to digital information processing |
|||
|first=Hans Jörg |
|||
|last=Tafel |
|||
|publisher=[[Carl Hanser Verlag]] |
|||
|date=1971 |
|||
|location=Munich |
|||
|isbn=3-446-10569-7 |
|||
|page=300 |
|||
|quote=Byte = zusammengehörige Folge von i.a. neun Bits; davon sind acht Datenbits, das neunte ein Prüfbit}}<br/> |
|||
NB. Defines a byte as a group of typically 9 bits; 8 data bits plus 1 parity bit. |
|||
</ref> |
|||
<!----> |
|||
<ref name="ibm.com">{{cite web |
|||
|url=https://www.ibm.com/support/knowledgecenter/SSGH4D_16.1.0/com.ibm.xlf161.aix.doc/language_ref/asciit.html |
|||
|title=List of EBCDIC codes by IBM |
|||
|website=ibm.com |
|||
|date=2020-01-02 |
|||
|access-date=2020-07-03 |
|||
|archive-date=2020-07-03 |
|||
|archive-url=https://web.archive.org/web/20200703073611/https://www.ibm.com/support/knowledgecenter/SSGH4D_16.1.0/com.ibm.xlf161.aix.doc/language_ref/asciit.html |
|||
|url-status=live |
|||
}}</ref> |
|||
<!----> |
|||
}} |
|||
== Further reading == |
|||
* {{cite book |title=Programming with the PDP-10 Instruction Set |series=PDP-10 System Reference Manual |date=August 1969 |volume=1 |section=2.5 Byte manipulation |section-url=http://bitsavers.org/pdf/dec/pdp10/1970_PDP-10_Ref/1970PDP10Ref_Part1.pdf#page=33 |pages=2-15-2-17 |publisher=[[Digital Equipment Corporation]] (DEC) |url=http://bitsavers.org/pdf/dec/pdp10/1970_PDP-10_Ref/1970PDP10Ref_Part1.pdf |access-date=2017-04-05 |url-status=live |archive-url=https://web.archive.org/web/20170405154620/http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp10/1970_PDP-10_Ref/1970PDP10Ref_Part1.pdf |archive-date=2017-04-05}} |
|||
* Ashley Taylor. "Bits and Bytes". Stanford. https://web.stanford.edu/class/cs101/bits-bytes.html |
|||
{{Computer Storage Volumes}} |
|||
{{Data types}} |
|||
{{Authority control}} |
|||
[[Category:Data types]] |
|||
[[Category:Units of information]] |
|||
[[Category:Binary arithmetic]] |
|||
[[Category:Computer memory]] |
|||
[[Category:Data unit]] |
|||
[[Category:Primitive types]] |
|||
[[Category:1950s neologisms]] |
|||
[[Category:8 (number)]] |
Latest revision as of 19:37, 8 January 2025
byte | |
---|---|
Unit system | unit derived from bit |
Unit of | digital information, data size |
Symbol | B, o (when 8 bits) |
The byte is a unit of digital information that most commonly consists of eight bits. 1 byte (B) = 8 bits (bit). Historically, the byte was the number of bits used to encode a single character of text in a computer[1][2] and for this reason it is the smallest addressable unit of memory in many computer architectures. To disambiguate arbitrarily sized bytes from the common 8-bit definition, network protocol documents such as the Internet Protocol (RFC 791) refer to an 8-bit byte as an octet.[3] Those bits in an octet are usually counted with numbering from 0 to 7 or 7 to 0 depending on the bit endianness.
The size of the byte has historically been hardware-dependent and no definitive standards existed that mandated the size. Sizes from 1 to 48 bits have been used.[4][5][6][7] The six-bit character code was an often-used implementation in early encoding systems, and computers using six-bit and nine-bit bytes were common in the 1960s. These systems often had memory words of 12, 18, 24, 30, 36, 48, or 60 bits, corresponding to 2, 3, 4, 5, 6, 8, or 10 six-bit bytes, and persisted, in legacy systems, into the twenty-first century. In this era, bit groupings in the instruction stream were often referred to as syllables[a] or slab, before the term byte became common.
The modern de facto standard of eight bits, as documented in ISO/IEC 2382-1:1993, is a convenient power of two permitting the binary-encoded values 0 through 255 for one byte, as 2 to the power of 8 is 256.[8] The international standard IEC 80000-13 codified this common meaning. Many types of applications use information representable in eight or fewer bits and processor designers commonly optimize for this usage. The popularity of major commercial computing architectures has aided in the ubiquitous acceptance of the 8-bit byte.[9] Modern architectures typically use 32- or 64-bit words, built of four or eight bytes, respectively.
The unit symbol for the byte was designated as the upper-case letter B by the International Electrotechnical Commission (IEC) and Institute of Electrical and Electronics Engineers (IEEE).[10] Internationally, the unit octet explicitly defines a sequence of eight bits, eliminating the potential ambiguity of the term "byte".[11][12] The symbol for octet, 'o', also conveniently eliminates the ambiguity in the symbol 'B' between byte and bel.
Etymology and history
[edit]The term byte was coined by Werner Buchholz in June 1956,[4][13][14][b] during the early design phase for the IBM Stretch[15][16][1][13][14][17][18] computer, which had addressing to the bit and variable field length (VFL) instructions with a byte size encoded in the instruction.[13] It is a deliberate respelling of bite to avoid accidental mutation to bit.[1][13][19][c]
Another origin of byte for bit groups smaller than a computer's word size, and in particular groups of four bits, is on record by Louis G. Dooley, who claimed he coined the term while working with Jules Schwartz and Dick Beeler on an air defense system called SAGE at MIT Lincoln Laboratory in 1956 or 1957, which was jointly developed by Rand, MIT, and IBM.[20][21] Later on, Schwartz's language JOVIAL actually used the term, but the author recalled vaguely that it was derived from AN/FSQ-31.[22][21]
Early computers used a variety of four-bit binary-coded decimal (BCD) representations and the six-bit codes for printable graphic patterns common in the U.S. Army (FIELDATA) and Navy. These representations included alphanumeric characters and special graphical symbols. These sets were expanded in 1963 to seven bits of coding, called the American Standard Code for Information Interchange (ASCII) as the Federal Information Processing Standard, which replaced the incompatible teleprinter codes in use by different branches of the U.S. government and universities during the 1960s. ASCII included the distinction of upper- and lowercase alphabets and a set of control characters to facilitate the transmission of written language as well as printing device functions, such as page advance and line feed, and the physical or logical control of data flow over the transmission media.[18] During the early 1960s, while also active in ASCII standardization, IBM simultaneously introduced in its product line of System/360 the eight-bit Extended Binary Coded Decimal Interchange Code (EBCDIC), an expansion of their six-bit binary-coded decimal (BCDIC) representations[d] used in earlier card punches.[23] The prominence of the System/360 led to the ubiquitous adoption of the eight-bit storage size,[18][16][13] while in detail the EBCDIC and ASCII encoding schemes are different.
In the early 1960s, AT&T introduced digital telephony on long-distance trunk lines. These used the eight-bit μ-law encoding. This large investment promised to reduce transmission costs for eight-bit data.
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".[24] 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."[24]
The development of eight-bit microprocessors in the 1970s popularized this storage size. Microprocessors such as the Intel 8080, the direct predecessor of the 8086, could also perform a small number of operations on the four-bit pairs in a byte, such as the decimal-add-adjust (DAA) instruction. A four-bit quantity is often called a nibble, also nybble, which is conveniently represented by a single hexadecimal digit.
The term octet unambiguously specifies a size of eight bits.[18][12] It is used extensively in protocol definitions.
Historically, the term octad or octade was used to denote eight bits as well at least in Western Europe;[25][26] however, this usage is no longer common. The exact origin of the term is unclear, but it can be found in British, Dutch, and German sources of the 1960s and 1970s, and throughout the documentation of Philips mainframe computers.
Unit symbol
[edit]The unit symbol for the byte is specified in IEC 80000-13, IEEE 1541 and the Metric Interchange Format[10] as the upper-case character B.
In the International System of Quantities (ISQ), B is also the symbol of the bel, a unit of logarithmic power ratio named after Alexander Graham Bell, creating a conflict with the IEC specification. However, little danger of confusion exists, because the bel is a rarely used unit. It is used primarily in its decadic fraction, the decibel (dB), for signal strength and sound pressure level measurements, while a unit for one-tenth of a byte, the decibyte, and other fractions, are only used in derived units, such as transmission rates.
The lowercase letter o for octet is defined as the symbol for octet in IEC 80000-13 and is commonly used in languages such as French[27] and Romanian, and is also combined with metric prefixes for multiples, for example ko and Mo.
Multiple-byte units
[edit]Multiple-byte units | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Orders of magnitude of data |
More than one system exists to define unit multiples based on the byte. Some systems are based on powers of 10, following the International System of Units (SI), which defines for example the prefix kilo as 1000 (103); other systems are based on powers of two. Nomenclature for these systems has led to confusion. Systems based on powers of 10 use standard SI prefixes (kilo, mega, giga, ...) and their corresponding symbols (k, M, G, ...). Systems based on powers of 2, however, might use binary prefixes (kibi, mebi, gibi, ...) and their corresponding symbols (Ki, Mi, Gi, ...) or they might use the prefixes K, M, and G, creating ambiguity when the prefixes M or G are used.
While the difference between the decimal and binary interpretations is relatively small for the kilobyte (about 2% smaller than the kibibyte), the systems deviate increasingly as units grow larger (the relative deviation grows by 2.4% for each three orders of magnitude). For example, a power-of-10-based terabyte is about 9% smaller than power-of-2-based tebibyte.
Units based on powers of 10
[edit]Definition of prefixes using powers of 10—in which 1 kilobyte (symbol kB) is defined to equal 1,000 bytes—is recommended by the International Electrotechnical Commission (IEC).[28] The IEC standard defines eight such multiples, up to 1 yottabyte (YB), equal to 10008 bytes.[29] The additional prefixes ronna- for 10009 and quetta- for 100010 were adopted by the International Bureau of Weights and Measures (BIPM) in 2022.[30][31]
This definition is most commonly used for data-rate units in computer networks, internal bus, hard drive and flash media transfer speeds, and for the capacities of most storage media, particularly hard drives,[32] flash-based storage,[33] and DVDs.[citation needed] Operating systems that use this definition include macOS,[34] iOS,[34] Ubuntu,[35] and Debian.[36] It is also consistent with the other uses of the SI prefixes in computing, such as CPU clock speeds or measures of performance.
Units based on powers of 2
[edit]A system of units based on powers of 2 in which 1 kibibyte (KiB) is equal to 1,024 (i.e., 210) bytes is defined by international standard IEC 80000-13 and is supported by national and international standards bodies (BIPM, IEC, NIST). The IEC standard defines eight such multiples, up to 1 yobibyte (YiB), equal to 10248 bytes. The natural binary counterparts to ronna- and quetta- were given in a consultation paper of the International Committee for Weights and Measures' Consultative Committee for Units (CCU) as robi- (Ri, 10249) and quebi- (Qi, 102410), but have not yet been adopted by the IEC or ISO.[37]
An alternative system of nomenclature for the same units (referred to here as the customary convention), in which 1 kilobyte (KB) is equal to 1,024 bytes,[38][39][40] 1 megabyte (MB) is equal to 10242 bytes and 1 gigabyte (GB) is equal to 10243 bytes is mentioned by a 1990s JEDEC standard. Only the first three multiples (up to GB) are mentioned by the JEDEC standard, which makes no mention of TB and larger. While confusing and incorrect,[41] the customary convention is used by the Microsoft Windows operating system[42][better source needed] and random-access memory capacity, such as main memory and CPU cache size, and in marketing and billing by telecommunication companies, such as Vodafone,[43] AT&T,[44] Orange[45] and Telstra.[46]
For storage capacity, the customary convention was used by macOS and iOS through Mac OS X 10.5 Leopard and iOS 10, after which they switched to units based on powers of 10.[34]
Parochial units
[edit]Various computer vendors have coined terms for data of various sizes, sometimes with different sizes for the same term even within a single vendor. These terms include double word, half word, long word, quad word, slab, superword and syllable. There are also informal terms. e.g., half byte and nybble for 4 bits, octal K for 10008.
History of the conflicting definitions
[edit]Contemporary[e] computer memory has a binary architecture making a definition of memory units based on powers of 2 most practical. The use of the metric prefix kilo for binary multiples arose as a convenience, because 1024 is approximately 1000.[27] This definition was popular in early decades of personal computing, with products like the Tandon 51⁄4-inch DD floppy format (holding 368640 bytes) being advertised as "360 KB", following the 1024-byte convention. It was not universal, however. The Shugart SA-400 51⁄4-inch floppy disk held 109,375 bytes unformatted,[47] and was advertised as "110 Kbyte", using the 1000 convention.[48] Likewise, the 8-inch DEC RX01 floppy (1975) held 256256 bytes formatted, and was advertised as "256k".[49] Some devices were advertised using a mixture of the two definitions: most notably, floppy disks advertised as "1.44 MB" have an actual capacity of 1440 KiB, the equivalent of 1.47 MB or 1.41 MiB.
In 1995, the International Union of Pure and Applied Chemistry's (IUPAC) Interdivisional Committee on Nomenclature and Symbols attempted to resolve this ambiguity by proposing a set of binary prefixes for the powers of 1024, including kibi (kilobinary), mebi (megabinary), and gibi (gigabinary).[50][51]
In December 1998, the IEC addressed such multiple usages and definitions by adopting the IUPAC's proposed prefixes (kibi, mebi, gibi, etc.) to unambiguously denote powers of 1024.[52] Thus one kibibyte (1 KiB) is 10241 bytes = 1024 bytes, one mebibyte (1 MiB) is 10242 bytes = 1048576 bytes, and so on.
In 1999, Donald Knuth suggested calling the kibibyte a "large kilobyte" (KKB).[53]
Modern standard definitions
[edit]The IEC adopted the IUPAC proposal and published the standard in January 1999.[54][55] The IEC prefixes are part of the International System of Quantities. The IEC further specified that the kilobyte should only be used to refer to 1000 bytes.[56]
Lawsuits over definition
[edit]Lawsuits arising from alleged consumer confusion over the binary and decimal definitions of multiples of the byte have generally ended in favor of the manufacturers, with courts holding that the legal definition of gigabyte or GB is 1 GB = 1000000000 (109) bytes (the decimal definition), rather than the binary definition (230, i.e., 1073741824). Specifically, the United States District Court for the Northern District of California held that "the U.S. Congress has deemed the decimal definition of gigabyte to be the 'preferred' one for the purposes of 'U.S. trade and commerce' [...] The California Legislature has likewise adopted the decimal system for all 'transactions in this state.'"[57]
Earlier lawsuits had ended in settlement with no court ruling on the question, such as a lawsuit against drive manufacturer Western Digital.[58][59] Western Digital settled the challenge and added explicit disclaimers to products that the usable capacity may differ from the advertised capacity.[58] Seagate was sued on similar grounds and also settled.[58][60]
Practical examples
[edit]Unit | Approximate equivalent |
---|---|
bit | a Boolean variable indicating true (1) or false (0). |
byte | a basic Latin character. |
kilobyte | text of "Jabberwocky" |
a typical favicon | |
megabyte | text of Harry Potter and the Goblet of Fire[61] |
gigabyte | about half an hour of video[62] |
CD-quality uncompressed audio of The Lamb Lies Down on Broadway | |
terabyte | the largest consumer hard drive in 2007[63] |
75 hours of video, encoded at 30 Mbit/second | |
petabyte | 2000 years of MP3-encoded music[64] |
exabyte | global monthly Internet traffic in 2004[65] |
zettabyte | global yearly Internet traffic in 2016 (known as the Zettabyte Era)[66] |
Common uses
[edit]Many programming languages define the data type byte.
The C and C++ programming languages define byte as an "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). The C standard requires that the integral data type unsigned char must hold at least 256 different values, and is represented by at least eight bits (clause 5.2.4.2.1). Various implementations of C and C++ reserve 8, 9, 16, 32, or 36 bits for the storage of a byte.[67][68][f] In addition, the C and C++ standards require that there be no gaps between two bytes. This means every bit in memory is part of a byte.[69]
Java's primitive data type byte is defined as eight bits. It is a signed data type, holding values from −128 to 127.
.NET programming languages, such as C#, define byte as an unsigned type, and the sbyte as a signed data type, holding values from 0 to 255, and −128 to 127, respectively.
In data transmission systems, the byte is used as a contiguous sequence of bits in a serial data stream, representing the smallest distinguished unit of data. For asynchronous communication a full transmission unit usually additionally includes a start bit, 1 or 2 stop bits, and possibly a parity bit, and thus its size may vary from seven to twelve bits for five to eight bits of actual data.[70] For synchronous communication the error checking usually uses bytes at the end of a frame.
See also
[edit]Notes
[edit]- ^ The term syllable was used for bytes containing instructions or constituents of instructions, not for data bytes.
- ^ Many sources erroneously indicate a birthday of the term byte in July 1956, but Werner Buchholz claimed that the term would have been coined in June 1956. In fact, the earliest document supporting this dates from 1956-06-11. Buchholz stated that the transition to 8-bit bytes was conceived in August 1956, but the earliest document found using this notion dates from September 1956.
- ^ Some later machines, e.g., Burroughs B1700, CDC 3600, DEC PDP-6, DEC PDP-10 had the ability to operate on arbitrary bytes no larger than the word size.
- ^ There was more than one BCD code page.
- ^ Through the 1970s there were machines with decimal architectures.
- ^ The actual number of bits in a particular implementation is documented as
CHAR_BIT
as implemented in the file limits.h.
References
[edit]- ^ a b c
Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962), "Chapter 4: Natural Data Units" (PDF), in Buchholz, Werner (ed.), Planning a Computer System - Project Stretch, McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp. 39–40, LCCN 61-10466, archived from the original (PDF) on 2017-04-03, retrieved 2017-04-03
Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below.
Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the Bull GAMMA 60 computer.)
Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. - ^ Bemer, Robert William (1959), "A proposal for a generalized card code of 256 characters", Communications of the ACM, 2 (9): 19–23, doi:10.1145/368424.368435, S2CID 36115735
- ^
Postel, J. (September 1981). Internet Protocol DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION. p. 43. doi:10.17487/RFC0791. RFC 791. Retrieved 28 August 2020.
octet An eight bit byte.
- ^ a b
Buchholz, Werner (1956-06-11). "7. The Shift Matrix" (PDF). The Link System. IBM. pp. 5–6. Stretch Memo No. 39G. Archived from the original (PDF) on 2017-04-04. Retrieved 2016-04-04.
[...] Most important, from the point of view of editing, will be the ability to handle any characters or digits, from 1 to 6 bits long.
Figure 2 shows the Shift Matrix to be used to convert a 60-bit word, coming from Memory in parallel, into characters, or 'bytes' as we have called them, to be sent to the Adder serially. The 60 bits are dumped into magnetic cores on six different levels. Thus, if a 1 comes out of position 9, it appears in all six cores underneath. Pulsing any diagonal line will send the six bits stored along that line to the Adder. The Adder may accept all or only some of the bits.
Assume that it is desired to operate on 4 bit decimal digits, starting at the right. The 0-diagonal is pulsed first, sending out the six bits 0 to 5, of which the Adder accepts only the first four (0-3). Bits 4 and 5 are ignored. Next, the 4 diagonal is pulsed. This sends out bits 4 to 9, of which the last two are again ignored, and so on.
It is just as easy to use all six bits in alphanumeric work, or to handle bytes of only one bit for logical analysis, or to offset the bytes by any number of bits. All this can be done by pulling the appropriate shift diagonals. An analogous matrix arrangement is used to change from serial to parallel operation at the output of the adder. [...] - ^
3600 Computer System - Reference Manual (PDF). K. St. Paul, Minnesota, US: Control Data Corporation (CDC). 1966-10-11 [1965]. 60021300. Archived from the original (PDF) on 2017-04-05. Retrieved 2017-04-05.
Byte - A partition of a computer word.
NB. Discusses 12-bit, 24-bit and 48-bit bytes. - ^
Rao, Thammavaram R. N.; Fujiwara, Eiji (1989). McCluskey, Edward J. (ed.). Error-Control Coding for Computer Systems. Prentice Hall Series in Computer Engineering (1 ed.). Englewood Cliffs, NJ, US: Prentice Hall. ISBN 0-13-283953-9. LCCN 88-17892.
NB. Example of the usage of a code for "4-bit bytes". - ^
Tafel, Hans Jörg (1971). Einführung in die digitale Datenverarbeitung [Introduction to digital information processing] (in German). Munich: Carl Hanser Verlag. p. 300. ISBN 3-446-10569-7.
Byte = zusammengehörige Folge von i.a. neun Bits; davon sind acht Datenbits, das neunte ein Prüfbit
NB. Defines a byte as a group of typically 9 bits; 8 data bits plus 1 parity bit. - ^
ISO/IEC 2382-1: 1993, Information technology - Vocabulary - Part 1: Fundamental terms. 1993.
byte:
A string that consists of a number of bits, treated as a unit, and usually representing a character or a part of a character.
NOTES:
1 The number of bits in a byte is fixed for a given data processing system.
2 The number of bits in a byte is usually 8. - ^ "Internet History of 1960s # 1964". Computer History Museum. 2017 [2015]. Archived from the original on 2022-06-24. Retrieved 2022-08-17.
- ^ a b Jaffer, Aubrey (2011) [2008]. "Metric-Interchange-Format". Archived from the original on 2017-04-03. Retrieved 2017-04-03.
- ^ Kozierok, Charles M. (2005-09-20) [2001]. "The TCP/IP Guide - Binary Information and Representation: Bits, Bytes, Nibbles, Octets and Characters - Byte versus Octet". 3.0. Archived from the original on 2017-04-03. Retrieved 2017-04-03.
- ^ a b
ISO 2382-4, Organization of data (2 ed.).
byte, octet, 8-bit byte: A string that consists of eight bits.
- ^ a b c d e
Buchholz, Werner (February 1977). "The Word "Byte" Comes of Age..." Byte Magazine. 2 (2): 144.
We received the following from W Buchholz, one of the individuals who was working on IBM's Project Stretch in the mid 1950s. His letter tells the story.
Not being a regular reader of your magazine, I heard about the question in the November 1976 issue regarding the origin of the term "byte" from a colleague who knew that I had perpetrated this piece of jargon [see page 77 of November 1976 BYTE, "Olde Englishe"]. I searched my files and could not locate a birth certificate. But I am sure that "byte" is coming of age in 1977 with its 21st birthday.
Many have assumed that byte, meaning 8 bits, originated with the IBM System/360, which spread such bytes far and wide in the mid-1960s. The editor is correct in pointing out that the term goes back to the earlier Stretch computer (but incorrect in that Stretch was the first, not the last, of IBM's second-generation transistorized computers to be developed).
The first reference found in the files was contained in an internal memo written in June 1956 during the early days of developing Stretch. A byte was described as consisting of any number of parallel bits from one to six. Thus a byte was assumed to have a length appropriate for the occasion. Its first use was in the context of the input-output equipment of the 1950s, which handled six bits at a time. The possibility of going to 8-bit bytes was considered in August 1956 and incorporated in the design of Stretch shortly thereafter.
The first published reference to the term occurred in 1959 in a paper 'Processing Data in Bits and Pieces' by G A Blaauw, F P Brooks Jr and W Buchholz in the IRE Transactions on Electronic Computers, June 1959, page 121. The notions of that paper were elaborated in Chapter 4 of Planning a Computer System (Project Stretch), edited by W Buchholz, McGraw-Hill Book Company (1962). The rationale for coining the term was explained there on page 40 as follows:
Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (ie, different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
System/360 took over many of the Stretch concepts, including the basic byte and word sizes, which are powers of 2. For economy, however, the byte size was fixed at the 8 bit maximum, and addressing at the bit level was replaced by byte addressing.
Since then the term byte has generally meant 8 bits, and it has thus passed into the general vocabulary.
Are there any other terms coined especially for the computer field which have found their way into general dictionaries of English language? - ^ a b
"Timeline of the IBM Stretch/Harvest era (1956-1961)". Computer History Museum. June 1956. Archived from the original on 2016-04-29. Retrieved 2017-04-03.
1956 Summer: Gerrit Blaauw, Fred Brooks, Werner Buchholz, John Cocke and Jim Pomerene join the Stretch team. Lloyd Hunter provides transistor leadership.
1956 July [sic]: In a report Werner Buchholz lists the advantages of a 64-bit word length for Stretch. It also supports NSA's requirement for 8-bit bytes. Werner's term "Byte" first popularized in this memo.NB. This timeline erroneously specifies the birth date of the term "byte" as July 1956, while Buchholz actually used the term as early as June 1956.
- ^
Buchholz, Werner (1956-07-31). "5. Input-Output" (PDF). Memory Word Length. IBM. p. 2. Stretch Memo No. 40. Archived from the original (PDF) on 2017-04-04. Retrieved 2016-04-04.
[...] 60 is a multiple of 1, 2, 3, 4, 5, and 6. Hence bytes of length from 1 to 6 bits can be packed efficiently into a 60-bit word without having to split a byte between one word and the next. If longer bytes were needed, 60 bits would, of course, no longer be ideal. With present applications, 1, 4, and 6 bits are the really important cases.
With 64-bit words, it would often be necessary to make some compromises, such as leaving 4 bits unused in a word when dealing with 6-bit bytes at the input and output. However, the LINK Computer can be equipped to edit out these gaps and to permit handling of bytes which are split between words. [...] - ^ a b
Buchholz, Werner (1956-09-19). "2. Input-Output Byte Size" (PDF). Memory Word Length and Indexing. IBM. p. 1. Stretch Memo No. 45. Archived from the original (PDF) on 2017-04-04. Retrieved 2016-04-04.
[...] The maximum input-output byte size for serial operation will now be 8 bits, not counting any error detection and correction bits. Thus, the Exchange will operate on an 8-bit byte basis, and any input-output units with less than 8 bits per byte will leave the remaining bits blank. The resultant gaps can be edited out later by programming [...]
- ^ Raymond, Eric Steven (2017) [2003]. "byte definition". Archived from the original on 2017-04-03. Retrieved 2017-04-03.
- ^ a b c d
Bemer, Robert William (2000-08-08). "Why is a byte 8 bits? Or is it?". Computer History Vignettes. Archived from the original on 2017-04-03. Retrieved 2017-04-03.
I came to work for IBM, and saw all the confusion caused by the 64-character limitation. Especially when we started to think about word processing, which would require both upper and lower case.
Add 26 lower case letters to 47 existing, and one got 73 -- 9 more than 6 bits could represent.
I even made a proposal (in view of STRETCH, the very first computer I know of with an 8-bit byte) that would extend the number of punch card character codes to 256 [1].
Some folks took it seriously. I thought of it as a spoof.
So some folks started thinking about 7-bit characters, but this was ridiculous. With IBM's STRETCH computer as background, handling 64-character words divisible into groups of 8 (I designed the character set for it, under the guidance of Dr. Werner Buchholz, the man who DID coin the term "byte" for an 8-bit grouping). [2] It seemed reasonable to make a universal 8-bit character set, handling up to 256. In those days my mantra was "powers of 2 are magic". And so the group I headed developed and justified such a proposal [3].
That was a little too much progress when presented to the standards group that was to formalize ASCII, so they stopped short for the moment with a 7-bit set, or else an 8-bit set with the upper half left for future work.
The IBM 360 used 8-bit characters, although not ASCII directly. Thus Buchholz's "byte" caught on everywhere. I myself did not like the name for many reasons. The design had 8 bits moving around in parallel. But then came a new IBM part, with 9 bits for self-checking, both inside the CPU and in the tape drives. I exposed this 9-bit byte to the press in 1973. But long before that, when I headed software operations for Cie. Bull in France in 1965-66, I insisted that 'byte' be deprecated in favor of "octet".
You can notice that my preference then is now the preferred term.
It is justified by new communications methods that can carry 16, 32, 64, and even 128 bits in parallel. But some foolish people now refer to a "16-bit byte" because of this parallel transfer, which is visible in the UNICODE set. I'm not sure, but maybe this should be called a "hextet".
But you will notice that I am still correct. Powers of 2 are still magic! - ^ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (June 1959). "Processing Data in Bits and Pieces". IRE Transactions on Electronic Computers: 121.
- ^
Dooley, Louis G. (February 1995). "Byte: The Word". BYTE. Ocala, FL, US. Archived from the original on 1996-12-20.
The word byte was coined around 1956 to 1957 at MIT Lincoln Laboratories within a project called SAGE (the North American Air Defense System), which was jointly developed by Rand, Lincoln Labs, and IBM. In that era, computer memory structure was already defined in terms of word size. A word consisted of x number of bits; a bit represented a binary notational position in a word. Operations typically operated on all the bits in the full word.
We coined the word byte to refer to a logical set of bits less than a full word size. At that time, it was not defined specifically as x bits but typically referred to as a set of 4 bits, as that was the size of most of our coded data items. Shortly afterward, I went on to other responsibilities that removed me from SAGE. After having spent many years in Asia, I returned to the U.S. and was bemused to find out that the word byte was being used in the new microcomputer technology to refer to the basic addressable memory unit. - ^ a b Ram, Stefan (17 January 2003). "Erklärung des Wortes "Byte" im Rahmen der Lehre binärer Codes" (in German). Berlin, Germany: Freie Universität Berlin. Archived from the original on 2021-06-10. Retrieved 2017-04-10.
- ^
Origin of the term "byte", 1956, archived from the original on 2017-04-10, retrieved 2022-08-17
A question-and-answer session at an ACM conference on the history of programming languages included this exchange:
[ John Goodenough:
You mentioned that the term "byte" is used in JOVIAL. Where did the term come from? ]
[ Jules Schwartz (inventor of JOVIAL):
As I recall, the AN/FSQ-31, a totally different computer than the 709, was byte oriented. I don't recall for sure, but I'm reasonably certain the description of that computer included the word "byte," and we used it. ]
[ Fred Brooks:
May I speak to that? Werner Buchholz coined the word as part of the definition of STRETCH, and the AN/FSQ-31 picked it up from STRETCH, but Werner is very definitely the author of that word. ]
[ Schwartz:
That's right. Thank you. ] - ^ "List of EBCDIC codes by IBM". ibm.com. 2020-01-02. Archived from the original on 2020-07-03. Retrieved 2020-07-03.
- ^ a b Knuth, Donald (1997) [1968]. The Art of Computer Programming: Volume 1: Fundamental Algorithms (3rd ed.). Boston: Addison-Wesley. p. 125. ISBN 9780201896831.
- ^ Williams, R. H. (1969). British Commercial Computer Digest: Pergamon Computer Data Series. Pergamon Press. ISBN 1483122107. ISBN 978-1483122106[clarification needed]
- ^ "Philips Data Systems' product range" (PDF). Philips. April 1971. Archived from the original (PDF) on 2016-03-04. Retrieved 2015-08-03.
- ^ a b
[
|*| About bits and bytes: prefixes for binary multiples - IEC
|*| v0: https://web.archive.org/web/20090818042050/http://www.iec.ch/online_news/etech/arch_2003/etech_0503/focus.htm
|*| v1: https://www.iec.ch/prefixes-binary-multiples Archived 2021-08-16 at the Wayback Machine ] - ^ Prefixes for Binary Multiples Archived 2007-08-08 at the Wayback Machine — The NIST Reference on Constants, Units, and Uncertainty
- ^ Matsuoka, Satoshi; Sato, Hitoshi; Tatebe, Osamu; Koibuchi, Michihiro; Fujiwara, Ikki; Suzuki, Shuji; Kakuta, Masanori; Ishida, Takashi; Akiyama, Yutaka; Suzumura, Toyotaro; Ueno, Koji (2014-09-15). "Extreme Big Data (EBD): Next Generation Big Data Infrastructure Technologies Towards Yottabyte/Year". Supercomputing Frontiers and Innovations. 1 (2): 89–107. doi:10.14529/jsfi140206. ISSN 2313-8734. Archived from the original on 2022-03-13. Retrieved 2022-05-27.
- ^ "List of Resolutions for the 27th meeting of the General Conference on Weights and Measures" (PDF). 2022-11-18. Archived (PDF) from the original on 2022-11-18. Retrieved 2022-11-18.
- ^ Gibney, Elizabeth (18 November 2022). "How many yottabytes in a quettabyte? Extreme numbers get new names". Nature. doi:10.1038/d41586-022-03747-9. ISSN 0028-0836. PMID 36400954. S2CID 253671538. Archived from the original on 16 January 2023. Retrieved 21 November 2022.
- ^ 1977 Disk/Trend Report Rigid Disk Drives, published June 1977
- ^ SanDisk USB Flash Drive Archived 2008-05-13 at the Wayback Machine "Note: 1 megabyte (MB) = 1 million bytes; 1 gigabyte (GB) = 1 billion bytes."
- ^ a b c "How iOS and macOS report storage capacity". Apple Support. 27 February 2018. Archived from the original on 9 April 2020. Retrieved 9 January 2022.
- ^ "UnitsPolicy". Ubuntu Wiki. Ubuntu. Archived from the original on 18 November 2021. Retrieved 9 January 2022.
- ^ "ConsistentUnitPrefixes". Debian Wiki. Archived from the original on 3 December 2021. Retrieved 9 January 2022.
- ^ Brown, Richard J. C. (27 April 2022). "Reply to "Facing a shortage of the Latin letters for the prospective new SI symbols: alternative proposal for the new SI prefixes"". Accreditation and Quality Assurance. 27 (3): 143–144. doi:10.1007/s00769-022-01499-7. S2CID 248397680.
- ^ Kilobyte – Definition and More from the Free Merriam-Webster Dictionary Archived 2010-04-09 at the Wayback Machine. Merriam-webster.com (2010-08-13). Retrieved on 2011-01-07.
- ^ Kilobyte – Definition of Kilobyte at Dictionary.com Archived 2010-09-01 at the Wayback Machine. Dictionary.reference.com (1995-09-29). Retrieved on 2011-01-07.
- ^ Definition of kilobyte from Oxford Dictionaries Online Archived 2006-06-25 at the Wayback Machine. Askoxford.com. Retrieved on 2011-01-07.
- ^ Prefixes for Binary and Decimal Multiples: Binary versus decimal
- ^ "Determining Actual Disk Size: Why 1.44 MB Should Be 1.40 MB". Microsoft Support. 2003-05-06. Archived from the original on 2014-02-09. Retrieved 2014-03-25.
- ^ "3G/GPRS data rates". Vodafone Ireland. Archived from the original on 26 October 2016. Retrieved 26 October 2016.
- ^ "Data Measurement Scale". AT&T. Retrieved 26 October 2016.[permanent dead link ]
- ^ "Internet Mobile Access". Orange Romania. Archived from the original on 26 October 2016. Retrieved 26 October 2016.
- ^ "Our Customer Terms" (PDF). Telstra. p. 7. Archived (PDF) from the original on 10 April 2017. Retrieved 26 October 2016.
- ^ "SA400 minifloppy". Swtpc.com. 2013-08-14. Archived from the original on 2014-05-27. Retrieved 2014-03-25.
- ^ "Shugart Associates SA 400 minifloppy™ Disk Drive" (PDF). Archived from the original (PDF) on 2011-06-08. Retrieved 2011-06-24.
- ^ "RXS/RX11 floppy disk system maintenance manual" (PDF). Maynard, Massachusetts: Digital Equipment Corporation. May 1975. Archived from the original (PDF) on 2011-04-23. Retrieved 2011-06-24.
- ^ IUCr 1995 Report - IUPAC Interdivisional Committee on Nomenclature and Symbols (IDCNS) http://ww1.iucr.org/iucr-top/cexec/rep95/idcns.htm Archived 2020-12-19 at the Wayback Machine
- ^ "Binary Prefix" University of Auckland Department of Computer Science https://wiki.cs.auckland.ac.nz/stageonewiki/index.php/Binary_prefix Archived 2020-10-16 at the Wayback Machine
- ^ National Institute of Standards and Technology. "Prefixes for binary multiples". Archived from the original on 2007-08-08. "In December 1998 the International Electrotechnical Commission (IEC) [...] approved as an IEC International Standard names and symbols for prefixes for binary multiples for use in the fields of data processing and data transmission."
- ^ "What is a kilobyte?". Archived from the original on 2011-06-06. Retrieved 2010-05-20.
- ^ NIST "Prefixes for binary multiples" https://physics.nist.gov/cuu/Units/binary.html Archived 2018-01-14 at the Wayback Machine
- ^ Amendment 2 to IEC International Standard IEC 60027-2: Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics.
- ^ Barrow, Bruce (January 1997). "A Lesson in Megabytes" (PDF). IEEE. p. 5. Archived from the original (PDF) on 17 December 2005. Retrieved 14 December 2024.
- ^ "Order Granting Motion to Dismiss" (PDF). United States District Court for the Northern District of California. Archived (PDF) from the original on 2021-10-07. Retrieved 2020-01-24.
- ^ a b c Mook, Nate (2006-06-28). "Western Digital Settles Capacity Suit". betanews. Archived from the original on 2009-09-07. Retrieved 2009-03-30.
- ^ Baskin, Scott D. (2006-02-01). "Defendant Western Digital Corporation's Brief in Support of Plaintiff's Motion for Preliminary Approval". Orin Safier v. Western Digital Corporation. Western Digital Corporation. Archived from the original on 2009-01-02. Retrieved 2009-03-30.
- ^ Judge, Peter (2007-10-26). "Seagate pays out over gigabyte definition". ZDNet. Archived from the original on 2014-09-03. Retrieved 2014-09-16.
- ^ Allison Dexter, "How Many Words are in Harry Potter?", [1] Archived 2021-01-25 at the Wayback Machine; shows 190637 words
- ^ "Kilobytes Megabytes Gigabytes Terabytes (Stanford University)". Archived from the original on 2020-11-08. Retrieved 2020-12-12.
- ^ Perenson, Melissa J. (4 January 2007). "Hitachi Introduces 1-Terabyte Hard Drive". www.pcworld.com. Archived from the original on 24 October 2012. Retrieved 5 December 2020.
- ^ "What does a petabyte look like?". Archived from the original on 28 January 2018. Retrieved 19 February 2018.
- ^ Gross, Grant (24 November 2007). "Internet Could Max Out in 2 Years, Study Says". PC World. Archived from the original on 26 November 2007. Retrieved 28 November 2007.
- ^ "The Zettabyte Era Officially Begins (How Much is That?)". Cisco Blogs. 2016-09-09. Archived from the original on 2021-08-02. Retrieved 2021-08-04.
- ^ Cline, Marshall. "I could imagine a machine with 9-bit bytes. But surely not 16-bit bytes or 32-bit bytes, right?". Archived from the original on 2019-03-21. Retrieved 2015-06-18.
- ^ Klein, Jack (2008), Integer Types in C and C++, archived from the original on 2010-03-27, retrieved 2015-06-18
- ^ Cline, Marshall. "C++ FAQ: the rules about bytes, chars, and characters". Archived from the original on 2019-03-21. Retrieved 2015-06-18.
- ^ "External Interfaces/API". Northwestern University. Archived from the original on 2018-08-09. Retrieved 2016-09-02.
Further reading
[edit]- "2.5 Byte manipulation" (PDF). Programming with the PDP-10 Instruction Set (PDF). PDP-10 System Reference Manual. Vol. 1. Digital Equipment Corporation (DEC). August 1969. pp. 2-15 – 2-17. Archived (PDF) from the original on 2017-04-05. Retrieved 2017-04-05.
- Ashley Taylor. "Bits and Bytes". Stanford. https://web.stanford.edu/class/cs101/bits-bytes.html