Just as qubits are the building blocks of quantum computing, classical bits are the foundation of classical computing. OpenQASM provides the capability to group bits into classical registers, which is particularly useful when you are working with measurements from quantum operations. This chapter will teach you how to create and work with classical registers in OpenQASM.
A classical register is akin to an array in classical programming, but it is designed to hold bits, which represent the binary states 0 or 1.
In OpenQASM, a classical register is declared with the creg
keyword, an identifier, and the number of bits as the size:
creg <identifier>[<size>];
The identifier should comply with OpenQASM's naming standards, and the size must be a positive integer.
Let's explore an experiment where we create a classical register to record the outcome of quantum measurements123456:
Diagram
OPENQASM 2.0; // Specify OpenQASM version [^1] include "qelib1.inc"; // Include the standard quantum library [^2] // Quantum register with a single qubit and classical register with two bits qreg qubit[1]; // Single-qubit quantum register [^4] creg bits[2]; // Two-bit classical register [^3] // Prepare qubit in a superposition state h qubit[0]; // Apply Hadamard gate to the qubit [^5] // Measure the qubit and store the result in the first bit of classical register measure qubit[0] -> bits[0]; // Measurement operation [^6] // The second bit remains in its initial state (0)
Translation
Powered by Perceval, Qiskit, PyZX
Not run yet
Simulation
Not run yet
In this combined experiment, a quantum register holds a single qubit that we prepare in a superposition state using a Hadamard gate. We then measure the qubit's state and store the measurement result in the first bit of our two-bit classical register. The second bit of the register is unmodified and showcases the ability to store multiple measurement outcomes or to utilize extra bits for other classical computations.
While OpenQASM doesn't allow the declaration of isolated classical bits, you can declare a one-bit register for scenarios needing only one bit:
// One-bit classical register declaration
creg flag[1]; // Single-bit register named 'flag' [^3]
In summary, classical registers in OpenQASM are indispensable for obtaining and preserving the results of quantum measurements, enabling the further processing needed in quantum algorithms.