As I understand it, the main difference between quantum and non-quantum computers is that quantum computers use qubits while non-quantum computers use (classical) bits.
What is the difference between qubits and classical bits?
Quantum Computing Stack Exchange is a question and answer site for engineers, scientists, programmers, and computing professionals interested in quantum computing. It only takes a minute to sign up.
Sign up to join this communityA bit is a binary unit of information used in classical computation. It can take two possible values, typically taken to be $0$ or $1$. Bits can be implemented with devices or physical systems that can be in two possible states.
To compare and contrast bits with qubits, let's introduce a vector notation for bits as follows: a bit is represented by a column vector of two elements $(\alpha,\beta)^T$, where $\alpha$ stands for $0$ and $\beta$ for $1$. Now the bit $0$ is represented by the vector $(1,0)^T$ and the bit $1$ by $(0,1)^T$. Just like before, there are only two possible values.
While this kind of representation is redundant for classical bits, it is now easy to introduce qubits: a qubit is simply any $(\alpha,\beta)^T$ where the complex number elements satisfy the normalization condition $|\alpha|^2+|\beta|^2=1$. The normalization condition is necessary to interpret $|\alpha|^2$ and $|\beta|^2$ as probabilities for measurement outcomes, as will be seen. Some call qubit the unit of quantum information. Qubits can be implemented as the (pure) states of quantum devices or quantum systems that can be in two possible states, that will form the so called computational basis, and additionally in a coherent superposition of these. Here the quantumness is necessary to have qubits other than the classical $(1,0)^T$ and $(0,1)^T$.
The usual operations that are carried out on qubits during a quantum computation are quantum gates and measurements. A (single qubit) quantum gate takes as input a qubit and gives as output a qubit that is a linear transformation of the input qubit. When using the above vector notation for qubits, gates should then be represented by matrices that preserve the normalization condition; such matrices are called unitary matrices. Classical gates may be represented by matrices that keep bits as bits, but notice that matrices representing quantum gates do not in general satisfy this requirement.
A measurement on a bit is understood to be a classical one. By this I mean that an a priori unknown value of bit can in principle be correctly found out with certainty. This is not the case for qubits: measuring a generic qubit $(\alpha,\beta)^T$ in the computational basis $[ (1,0)^T,(0,1)^T]$ will result in $(1,0)^T$ with probability $|\alpha|^2$ and in $(0,1)^T$ with probability $|\beta|^2$. In other words, while qubits can be in states other than computational basis states before measurement, measuring can still have only two possible outcomes.
There is not much one can do with a single bit or qubit. The full computational power of either comes from using many, which leads to the final difference between them that will be covered here: multiple qubits can be entangled. Informally speaking, entanglement is a form of correlation much stronger than classical systems can have. Together, superposition and entanglement allow one to design algorithms realized with qubits that cannot be done with bits. Of greatest interest are algorithms that allow the completion of a task with reduced computational complexity when compared to best known classical algorithms.
Before concluding, it should be mentioned that a qubit can be simulated with bits (and vice versa), but the number of bits required grows rapidly with the number of qubits. Consequently, without reliable quantum computers quantum algorithms are of theoretical interest only.