Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
Wilmington, North Carolina once had a thriving Black middle class and an elected interracial government. In 1898 white supremacists used violence to overthrow that government, kill Black residents and drive many others from the city.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
This article's lead section may be too long. (September 2026) |
| bit | |
|---|---|
| Unit of | information |
| Symbol | b, bit |
The bit is the most basic unit of information in computing and digital communication. The name is a portmanteau of binary digit.[1] Its symbol is either "bit" (IEC standard)[2] or lowercase "b" (IEEE standard).[3] Use of the latter may create confusion with capital "B", which is the international standard symbol for the byte.
The bit represents a logical state with one of two possible values. These values are most commonly represented as 1 and 0, but other representations such as true/false, yes/no, on/off, and +/− are also widely used. The relation between these values and the physical states of the underlying storage or device is a matter of convention, and different assignments may be used even within the same device or program. It may be physically implemented with a two-state device.
A contiguous group of binary digits is commonly called a bit string, a bit vector, or a single-dimensional (or multi-dimensional) bit array. A group of eight bits is called one byte, but historically, the size of the byte is not strictly defined.[4] Frequently, half, full, double and quadruple words consist of a number of bytes which is a low power of two. A string of four bits is usually a nibble.
|
Units of information |
| Information-theoretic |
|---|
| Classical Information |
| Quantum information |
In information theory, one bit is the information entropy of a random binary variable that is 0 or 1 with equal probability,[5] or the information that is gained when the value of such a variable becomes known.[6][7] As a unit of information, the bit is also known as a shannon,[8] named after Claude E. Shannon. As a measure of the length of a digital string that is encoded as symbols over a binary alphabet (i.e. ), the bit has been called a binit,[9] but this usage is now rare.[10]
In data compression, the goal is to find a shorter representation for a string, so that it requires fewer bits when stored or transmitted; the string would be compressed into the shorter representation before doing so, and then decompressed into its original form when read from storage or received. The field of algorithmic information theory is devoted to the study of the irreducible information content of a string (i.e., its shortest-possible representation length, in bits), under the assumption that the receiver has minimal a priori knowledge of the method used to compress the string. In error detection and correction, the goal is to add redundant data to a string to enable the detection or correction of errors during storage or transmission; the redundant data would be computed before doing so, and stored or transmitted, and then checked or corrected when the data is read or received.
Ralph Hartley suggested the use of a logarithmic measure of information in 1928.[11] Claude E. Shannon first used the word "bit" in his seminal 1948 paper "A Mathematical Theory of Communication".[12][13][14] He attributed its origin to John W. Tukey, who had written a Bell Labs memo on 9 January 1947 in which he contracted "binary digit" to simply "bit".[12]
A bit can be stored by a digital device or other physical system that exists in either of two possible distinct states. These may be the two stable states of a flip-flop, two positions of an electrical switch, two distinct voltage or current levels allowed by a circuit, two distinct levels of light intensity, two directions of magnetization or polarization, the orientation of reversible double stranded DNA, etc.
Perhaps the earliest example of a binary storage device was the punched card invented by Basile Bouchon and Jean-Baptiste Falcon (1732), developed by Joseph Marie Jacquard (1804), and later adopted by Semyon Korsakov, Charles Babbage, Herman Hollerith, and early computer manufacturers like IBM. A variant of that idea was the perforated paper tape. In all those systems, the medium (card or tape) conceptually carried an array of hole positions; each position could be either punched through or not, thus carrying one bit of information per potential hole location. The encoding of text by bits was also used in Morse code (1844) and early digital communications machines such as teleprinters (1870).
The first electrical devices for discrete logic (such as elevator and traffic light control circuits, telephone switches, and Konrad Zuse's computer) represented bits as the states of electrical relays, which could be either open or closed. These relays functioned as mechanical switches, physically toggling between states to represent binary data, forming the fundamental building blocks of early computing and control systems. When relays were replaced by vacuum tubes, starting in the 1940s, computer builders experimented with a variety of storage methods, such as pressure pulses traveling down a mercury delay line, charges stored on the inside surface of a cathode ray tube, or opaque spots printed on glass discs by photolithographic techniques.
In the 1950s and 1960s, these methods were largely supplanted by magnetic storage devices such as magnetic-core memory, magnetic tapes, drums, and disks, where a bit was represented by the polarity of magnetization of a certain area of a ferromagnetic film, or by a change in polarity from one direction to the other. The same principle was later used in the magnetic bubble memory developed in the 1980s, and is still found in various magnetic strip items such as metro tickets and some credit cards.
In modern semiconductor memory, such as dynamic random-access memory or a solid-state drive, the two values of a bit are represented by two levels of electric charge stored in a capacitor or a floating-gate MOSFET. In certain types of programmable logic arrays and read-only memory, a bit may be represented by the presence or absence of a conducting path at a certain point of a circuit. In optical discs, a bit is encoded as the presence or absence of a microscopic pit on a reflective surface. In one-dimensional bar codes and two-dimensional QR codes, bits are encoded as lines or squares which may be either black or white.
In modern digital computing, bits are transformed in Boolean logic gates.
Bits are transmitted one at a time in serial transmission. By contrast, multiple bits are transmitted simultaneously in a parallel transmission. A serial computer processes information in either a bit-serial or a byte-serial fashion. From the standpoint of data communications, a byte-serial transmission is an 8-way parallel transmission with binary signalling.
In programming languages such as C, a bitwise operation operates on binary strings as though they are vectors of bits, rather than interpreting them as binary numbers.
Data transfer rates are usually measured in decimal SI multiples. For example, a channel capacity may be specified as 8 kbit/s = 1 kB/s.
File sizes are often measured in (binary) IEC multiples of bytes, for example, 1 KiB = 1024 bytes = 8192 bits. Confusion may arise in cases where (for historic reasons) file sizes are specified with binary multipliers using the ambiguous prefixes K, M, and G rather than the IEC standard prefixes Ki, Mi, and Gi.[15]
Mass storage devices are usually measured in decimal SI multiples, for example, 1 TB = bytes.
Confusingly, the storage capacity of a directly addressable memory device, such as a DRAM chip, or an assemblage of such chips on a memory module, is specified as a binary multiple—using the ambiguous prefix G rather than the IEC-recommended Gi prefix. For example, a DRAM chip that is specified (and advertised) as having 1 GB of capacity has bytes of capacity. As of 2022, the difference between the popular understanding of a memory system with 8 GB of capacity and the SI-correct meaning of 8 GB was still causing difficulty to software designers.[16]
The bit is not defined in the International System of Units (SI). However, the International Electrotechnical Commission issued standard IEC 60027, which specifies that the symbol for binary digit should be bit, and this should be used in all multiples, such as kbit, for kilobit.[17] However, the lower-case letter b is widely used as well and was recommended by the IEEE 1541 Standard (2002). In contrast, the uppercase letter B is the standard and customary symbol for byte.
| Decimal | Binary | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Value | SI | Value | IEC | JEDEC | |||||||
| 1000 | kbit | kilobit | 1024 | Kibit | kibibit | Kbit | Kb | kilobit | |||
| 10002 | Mbit | megabit | 10242 | Mibit | mebibit | Mbit | Mb | megabit | |||
| 10003 | Gbit | gigabit | 10243 | Gibit | gibibit | Gbit | Gb | gigabit | |||
| 10004 | Tbit | terabit | 10244 | Tibit | tebibit | — | |||||
| 10005 | Pbit | petabit | 10245 | Pibit | pebibit | — | |||||
| 10006 | Ebit | exabit | 10246 | Eibit | exbibit | — | |||||
| 10007 | Zbit | zettabit | 10247 | Zibit | zebibit | — | |||||
| 10008 | Ybit | yottabit | 10248 | Yibit | yobibit | — | |||||
| 10009 | Rbit | ronnabit | 10249 | Ribit | robibit | — | |||||
| 100010 | Qbit | quettabit | 102410 | Qibit | quebibit | — | |||||
| Orders of magnitude of data | |||||||||||
Multiple bits may be expressed and represented in several ways. For the convenience of representing recurring groups of bits in information technology, several units of information have traditionally been used. The most common is the unit byte, coined by Werner Buchholz in June 1956, which historically was used to represent the group of bits used to encode a single character of text in a computer[4][18][19][20][21] and for this reason it was used as the basic addressable element in many computer architectures. By 1993, the trend in hardware design had converged on the 8-bit byte.[22] However, because of the ambiguity of relying on the underlying hardware design, the unit octet was defined to explicitly denote a sequence of eight bits.
Computers usually manipulate bits in groups of a fixed size, conventionally named "words". Like the byte, the number of bits in a word also varies with the hardware design, and is typically between 8 and 80 bits, or even more in some specialized computers. In the early 21st century, retail personal or server computers have a word size of 32 or 64 bits.
Larger numbers of bits are commonly expressed using the standard SI metric prefixes for multiples of units. These are defined from kilo- (1000 or 103 units) to quetta- (1030) and their values increase sequentially by a factor of one thousand. The corresponding multiple-bit units range from kilobit (kbit) to quettabit (Qbit).
[...] 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). [...] 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 choice of a logarithmic base corresponds to the choice of a unit for measuring information. If the base 2 is used the resulting units may be called binary digits, or more briefly bits, a word suggested by J. W. Tukey.
{{cite book}}: ISBN / Date incompatibility (help)
[...] 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 [...] 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. [...] 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. [...]
[...] 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. [...]
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
The bit is the most basic unit of information in computing and digital communication. The name is a portmanteau of binary digit. Its symbol is either "bit" (IEC standard) or lowercase "b" (IEEE standard). Use of the latter may create confusion with capital "B", which is the international standard symbol for the byte. The bit represents a logical state with one of two possible values. These values are most commonly represented as 1 and 0, but other representations such as true/false, yes/no, on/off, and +/− are also widely used. The relation between these values and the physical states of the underlying storage or device is a matter of convention, and different assignments may be used even within the same device or program. It may be physically implemented with a two-state device. A contiguous group of binary digits is commonly called a bit string, a bit vector, or a single-dimensional (or multi-dimensional) bit array. A group of eight bits is called one byte, but historically, the size of the byte is not strictly defined. Frequently, half, full, double and quadruple words consist of a number of bytes which is a low power of two. A string of four bits is usually a nibble. In information theory, one bit is the information entropy of a random binary variable that is 0 or 1 with equal probability, or the information that is gained when the value of such a variable becomes known. As a unit of information, the bit is also known as a shannon, named after Claude E. Shannon. As a measure of the length of a digital string that is encoded as symbols over a binary alphabet (i.e. Σ = { 0 , 1 } {\displaystyle \Sigma =\{{\texttt {0}},{\texttt {1}}\}} ), the bit has been called a binit, but this usage is now rare. In data compression, the goal is to find a shorter representation for a string, so that it requires fewer bits when stored or transmitted; the string would be compressed into the shorter representation before doing so, and then decompressed into its original form when read from storage or received. The field of algorithmic information theory is devoted to the study of the irreducible information content of a string (i.e., its shortest-possible representation length, in bits), under the assumption that the receiver has minimal a priori knowledge of the method used to compress the string. In error detection and correction, the goal is to add redundant data to a string to enable the detection or correction of errors during storage or transmission; the redundant data would be computed before doing so, and stored or transmitted, and then checked or corrected when the data is read or received.
A bit array (also known as bit map, bit set, bit string, or bit vector) is an array data structure that compactly stores bits. It can be used to implement a simple set data structure. A bit array is effective at exploiting bit-level parallelism in hardware to perform operations quickly. A typical bit array stores k w {\displaystyle kw} bits, where w {\displaystyle w} is the number of bits in the unit of storage, such as a byte or word, and k {\displaystyle k} is some positive integer. If w {\displaystyle w} does not divide the number of bits to be stored, some space is wasted due to internal fragmentation.
x86-64 (also known as AMD64, x86_64, x64 and, rarely, Intel 64) is a 64-bit extension of the x86 instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new operating modes: 64-bit mode and compatibility mode, along with a new four-level paging mechanism. In 64-bit mode, x86-64 supports significantly larger amounts of virtual and physical memory compared to its 32-bit predecessors, allowing computer programs to utilize more memory. The architecture increases the number of general-purpose registers from 8 to 16, and extends each of the register's width (capacity) to 64 bits. Floating-point arithmetic is supported through mandatory SSE2 instructions in 64-bit mode. While registers for older floating-point implementations—the x87 and MMX—are still available, they are generally superseded by 128-bit vector registers for the SSE instruction set. These vector registers are capable of storing two double-precision, or up to four single-precision floating-point numbers, along with various integer formats. In 64-bit mode, instructions are modified to support 64-bit operands and 64-bit addressing mode. The x86-64 architecture defines a compatibility mode that allows 16-bit and 32-bit user applications to run unmodified alongside 64-bit applications, provided the 64-bit operating system supports them. Since the full x86-32 instruction sets remain implemented in hardware without the need for emulation, these older executables can run with little or no performance penalty, while newer or modified applications can take advantage of new features of the processor design to achieve performance improvements. Also, processors supporting x86-64 still power on in real mode to maintain backward compatibility with the original 8086 processor, as has been the case with x86 processors since the introduction of protected mode with the 80286. The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel, and VIA. The AMD K8 microarchitecture, in the Opteron and Athlon 64 processors, was the first to implement it. This was the first significant addition to the x86 architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified NetBurst family which was software-compatible with AMD's specification. VIA Technologies introduced x86-64 in their Isaiah microarchitecture, with the VIA Nano. The x86-64 architecture was quickly adopted for desktop and laptop personal computers and servers which were commonly configured for 16 GiB (gibibytes) of memory or more. It has effectively replaced the discontinued Intel Itanium architecture (formerly IA-64), which was originally intended to replace the x86 architecture. x86-64 and Itanium are not compatible on the native instruction set level, and operating systems and applications compiled for one architecture cannot be run on the other natively. In October 2024, the x86 Ecosystem Advisory Group was formed jointly by Intel and AMD. Goals included the enhancement of software consistency and standardizing x86 interfaces and features.
The Hamming weight of a string is the number of symbols that are different from the zero-symbol of the alphabet used. It is thus equivalent to the Hamming distance from the all-zero string of the same length. For the most typical case, a given set of bits, this is the number of bits set to 1, or the digit sum of the binary representation of a given number and the ℓ₁ norm of a bit vector. In this binary case, it is also called the population count, popcount, sideways sum, or bit summation.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →Brown v. Board of Education in 1954.