Linear binary code 


An \((n,2^k,d)\) linear code is denoted as \([n,k]\) or \([n,k,d]\), where \(d\) is the code's distance. Its codewords form a linear subspace, i.e., for any codewords \(x,y\), \(x+y\) is also a codeword. A code that is not linear is called nonlinear.

Linear codes can be defined in terms of a generator matrix \(G\), whose rows form a basis for the \(k\)-dimensional codespace. Given a message \(x\), the corresponding encoded codeword is \(G^T x\). The generator matrix can be reduced via coordinate permutations to its standard or systematic form \(G = [I_k~A]\), where \(I_k\) is a \(k\times k\) identity matrix and \(A\) is a \(k \times (n-k)\) binary matrix.


Distance \(d\) of a linear code is the number of nonzero entries in the (nonzero) codeword with the smallest such number. Corrects any error set for which no two elements of the set add up to a codeword.

Linear codes admit a parity check matrix \(H\), whose columns make up a set of parity checks, i.e., a maximal linearly independent set of vectors that are in the kernel of \(G\). It follows that \begin{align} G H^{\text{T}} = 0 \mod 2~. \tag*{(1)}\end{align}

The decision problem corresponding to finding the minimum distance is also \(NP\)-complete [1], and approximating the weight enumerator is \(\#P\)-complete [2].


A family of linear codes \(C_i = [n_i,k_i,d_i]\) is asymptotically good if the asymptotic rate \(\lim_{i\to\infty} k_i/n_i\) and asymptotic distance \(\lim_{i\to\infty} d_i/n_i\) are both positive.


Decoding an arbitary linear binary code is \(NP\)-complete [3].Slepian's standard-array decoding [4].Recursive maximum likelihood decoding [5].Transformer neural net for soft decoding [6].Chase decoding, which uses channel measurement information [7].


Tables of bounds and examples of linear codes for various \(n\) and \(k\), extending code tables by A. E. Brouwer [8], are maintained by M. Grassl at this website.




  • Binary linear LTC — Linear binary codes with distances \(\frac{1}{2}n-\sqrt{t n}\) for some \(t\) are called almost-orthogonal and are locally testable with query complexity of order \(O(t)\) [10]. This was later improved to codes with distance \(\frac{1}{2}n-O(n^{1-\gamma})\) for any positive \(\gamma\) [11], provided that the number of codewords is polynomial in \(n\).
  • Hamiltonian-based code — Hamiltonians whose eigenstates are the canonical basis elements are called classical. One example is the classical Ising model, whose terms are produts of Pauli \(Z\) matrices. Parity-check constraints defining a binary linear code can be encoded in such a model.
  • Construction-\(A\) code — Every binary linear code yields a lattice code under Construction A.
  • Binary Varshamov-Tenengolts (VT) code — By adapting a construction of Tenengolts [12], binary VT codes can be modified to yield slightly longer linear codes [13].
  • Single parity-check (SPC) code — Any \([n,k,d]\) code with odd distance can be extended to an \([n+1,k,d+1]\) code by adding a bit storing the sum of codeword coordinates.
  • Slepian group-orbit code — Any length-\(n\) binary linear code can be used to define a diagonal subgroup of \(n\)-dimensional rotation matrices with \(\pm 1\) on the diagonals via the antipodal mapping \(0\to+1\) and \(1\to-1\). The orbit of this subgroup yields the corresponding Slepian group-orbit code; see [9; Thm. 8.5.2].
  • Binary PSK (BPSK) code — Concatenating binary linear codes with BPSK yields a standard way of digitizing the analog AGWN channel [14; Ch. 29].
  • Entanglement-assisted (EA) QECC — Any linear binary code can be used to construct an EAQECC.
  • Spacetime circuit code — The set of measurement outcomes of a Clifford circuit can be made into a classical binary linear code. Error syndromes of the spacetime circuit code can be used to obtain the parity checks of the outcome code.
  • CPC code — The CPC Construction uses two binary linear codes.
  • Quantum data-syndrome (QDS) code — The QDS code construction employs a particular binary linear code to provide protection against syndrome measurement errors.
  • EA qubit stabilizer code — Any linear binary code can be used to construct an EA qubit stabilizer code.
  • Qubit CSS code — The CSS construction uses two related binary linear codes, \(C_X\) and \(C_Z\).
  • Qubit stabilizer code — Qubit stabilizer codes are the closest quantum analogues of binary linear codes because addition modulo two corresponds to multiplication of stabilizers in the quantum case. Any binary linear code can be thought of as a qubit stabilizer code with \(Z\)-type stabilizer generators [15; Table I]. The stabilizer generators are extracted from rows of the parity-check matrix, while logical \(X\) Paulis correspond to rows of the generator matrix. States close to the equal superposition of all bit strings within Hamming distance \(b\) of a binary linear code can be prepared efficiently [16].
  • 2D color code — As CSS codes, variants of the 2D color code are constructed out of self-dual classical codes on cubic planar graphs [17].


A. Vardy, “The intractability of computing the minimum distance of a code”, IEEE Transactions on Information Theory 43, 1757 (1997) DOI
M. N. Vyalyi, “Hardness of approximating the weight enumerator of a binary linear code”, (2003) arXiv:cs/0304044
E. Berlekamp, R. McEliece, and H. van Tilborg, “On the inherent intractability of certain coding problems (Corresp.)”, IEEE Transactions on Information Theory 24, 384 (1978) DOI
D. Slepian, “Some Further Theory of Group Codes”, Bell System Technical Journal 39, 1219 (1960) DOI
Y. S. Han et al., “Maximum-likelihood Soft-decision Decoding for Binary Linear Block Codes Based on Their Supercodes”, (2014) arXiv:1408.1310
Y. Choukroun and L. Wolf, “Error Correction Code Transformer”, (2022) arXiv:2203.14966
D. Chase, “Class of algorithms for decoding block codes with channel measurement information”, IEEE Transactions on Information Theory 18, 170 (1972) DOI
Andries E. Brouwer, Bounds on linear codes, in: Vera S. Pless and W. Cary Huffman (Eds.), Handbook of Coding Theory, pp. 295-461, Elsevier, 1998.
T. Ericson, and V. Zinoviev, eds. Codes on Euclidean spheres. Elsevier, 2001.
T. Kaufman and S. Litsyn, “Almost Orthogonal Linear Codes are Locally Testable”, 46th Annual IEEE Symposium on Foundations of Computer Science (FOCS’05) DOI
T. Kaufman and M. Sudan, “Sparse Random Linear Codes are Locally Decodable and Testable”, 48th Annual IEEE Symposium on Foundations of Computer Science (FOCS’07) (2007) DOI
G. M. Tenengolts, Class of codes correcting bit loss and errors in the preceding bit (translated to English), Automation and Remote Control, 37(5), 797–802 (1976).
N. J. A. Sloane, “On Single-Deletion-Correcting Codes”, (2002) arXiv:math/0207197
A. Lapidoth, A Foundation in Digital Communication (Cambridge University Press, 2017) DOI
D. Bacon and A. Casaccino, “Quantum Error Correcting Subsystem Codes From Two Classical Linear Codes”, (2006) arXiv:quant-ph/0610088
E. Farhi and S. P. Jordan, “Efficiently constructing a quantum uniform superposition over bit strings near a binary linear code”, (2024) arXiv:2404.16129
H. Oral, “Constructing self-dual codes using graphs”, Journal of Combinatorial Theory, Series B 52, 250 (1991) DOI
Page edit log

Your contribution is welcome!

on (edit & pull request)— see instructions

edit on this site

Zoo Code ID: binary_linear

Cite as:
“Linear binary code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.
@incollection{eczoo_binary_linear, title={Linear binary code}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={} }
Share via:
Twitter | Mastodon |  | E-mail
Permanent link:

Cite as:

“Linear binary code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.