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.

Understanding Classical Registers

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.

Experiment: Creating and Utilizing a Classical Register

Let's explore an experiment where we create a classical register to record the outcome of quantum measurements^{1}^{2}^{3}^{4}^{5}^{6}:

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.

Single-Bit Classical Registers

While OpenQASM doesn't allow the declaration of isolated classical bits, you can declare a one-bit register for scenarios needing only one bit:

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.