aligned— each element begins on a byte or word boundary— or unaligned— elements immediately follow each other with no padding. PL/pgSQL and PostgreSQL's SQL support bit strings as native type. There are two SQL bit types: bit(n) and bit varying(n), where n is a positive integer. Hardware description languages such as VHDL, Verilog, and SystemVerilog natively support bit vectors as these are used to model storage elements like flip-flops, hardware busses and hardware signals in general. In hardware verification languages such as OpenVera, e and SystemVerilog, bit vectors are used to sample values from the hardware models, and to represent data that is transferred to hardware during simulations. Common Lisp provides a one-dimensional bit-vector implementation as a special case of the built-in array, acting in a dual capacity as a class and a type specifier. Being a derivative of the array, it relies on the general make-array function to be configured with an element type of bit, which optionally permits the bit vector to be designated as dynamically resizable. The bit-vector, however, is not infinite in extent. A more restricted simple-bit-vector type exists, which explicitly excludes the dynamic characteristics. Bit vectors are represented as, and can be constructed in a more concise fashion by, the reader macro #*bits. In addition to the general functions applicable to all arrays, dedicated operations exist for bit vectors. Single bits may be accessed and modified using the bit and sbit functions and an extensive number of logical operations is supported. See also Arithmetic logic unit Binary code Binary numeral system Bitboard Chess and similar games. Bit field Bitmap index Bitstream Finite field of 2 elements, or GF(2) Judy array References External links mathematical bases by Pr. D.E.Knuth vector<bool> Is Nonconforming, and Forces Optimization Choice vector<bool>: More Problems, Better Solutions Arrays Bit data structures