トフォリゲート
このゲートは3ビットの入出力をもつ。もし入力の最初の2ビットが1ならその時に限り、第3のビットを反転して出力する。最初の2ビットはそのまま出力する。以下の表に動作を示す。
また、論理式で表すと次のようになる。
C C N O T ( x , y , z ) = ( x , y , ( x ⋅ y ) ⊕ z ) {\displaystyle CCNOT(x,y,z)=(x,y,(x\cdot y)\oplus z)}
トフォリゲートは機能的完全性(英語版)をもつ。つまり、どのような論理関数 f(x1, x2, ..., xm) に対しても、トフォリゲートのみを使って x1, x2, ..., xm と幾つかの作業用のビットを入力に取り x1, x2, ..., xm, f(x1, x2, ..., xm) と幾つかの作業に使われた不要なビットを出力する論理回路を構成できる。これは、トフォリゲートを使って論理関数を可逆的に計算することができることを意味する。