---
title: Measure qubits
description: Learn how to measure qubits, including constraints on where measurements can be used.
source: https://eu-de.quantum.cloud.ibm.com/docs/en/guides/measure-qubits
---

# Measure qubits

### Package versions

The code on this page was developed using the following requirements.
We recommend using these versions or newer.

```
qiskit[all]~=2.5.1
```

To get information about a qubit's state, you can *measure* it onto a [classical bit](/docs/api/qiskit/circuit#qiskit.circuit.Clbit). In Qiskit, measurements are performed in the computational basis, that is, the single-qubit Pauli-$Z$ basis. Therefore, a measurement yields 0 or 1, depending on the overlap with the Pauli-$Z$ eigenstates $|0\rangle$ and $|1\rangle$:

$$
|q\rangle \xrightarrow{measure}\begin{cases}
      0 (\text{outcome}+1), \text{with probability } p_0=|\langle q|0\rangle|^{2}\text{,} \\
      1 (\text{outcome}-1), \text{with probability } p_1=|\langle q|1\rangle|^{2}\text{.}
    \end{cases}
$$

## Apply a measurement to a circuit

There are several ways to apply measurements to a circuit:

### `QuantumCircuit.measure` method

Use the [`measure`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure) method to measure a [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#quantumcircuit-class).

Examples:

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(5, 5)
qc.x(0)
qc.x(1)
qc.x(4)
qc.measure(
    range(5), range(5)
)  #  Measures all qubits into the corresponding clbit.
```

Output:

```
<qiskit.circuit.instructionset.InstructionSet at 0x7ff250007af0>
```

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure(1, 0)  # Measure qubit 1 into the classical bit 0.
```

Output:

```
<qiskit.circuit.instructionset.InstructionSet at 0x7ff250007ca0>
```

### `Measure` class

The Qiskit [Measure](/docs/api/qiskit/circuit#qiskit.circuit.Measure) class measures the specified qubits.

```python
from qiskit.circuit import Measure

qc = QuantumCircuit(3, 1)
qc.x([0, 1])
qc.append(Measure(), [0], [0])  # measure qubit 0 into clbit 0
```

Output:

```
<qiskit.circuit.instructionset.InstructionSet at 0x7ff250007760>
```

### `QuantumCircuit.measure_all` method

To measure all qubits into the corresponding classical bits, use the [`measure_all`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_all) method. By default, this method adds new classical bits in a `ClassicalRegister` to store these measurements.

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_all()  # Measure all qubits.
```

### `QuantumCircuit.measure_active` method

To measure all qubits that are not idle, use the [`measure_active`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_active) method. This method creates a new `ClassicalRegister` with a size equal to the number of non-idle qubits being measured.

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_active()  # Measure qubits that are not idle, that is, qubits 0 and 2.
```

## Next steps

> **Recommendations**
>
> - [`Measure`](/docs/api/qiskit/circuit#qiskit.circuit.Measure) class
> - [`measure_all`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_all) method
> - [`measure_active`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit#measure_active) method
> - [`random_circuit`](/docs/api/qiskit/circuit_random#qiskit.circuit.random.random_circuit) method
> - [Mid-circuit measurements](/docs/guides/execute-dynamic-circuits#midcircuit) (Available only when using IBM Quantum Compute Service.)
