スキャンコード
スキャンコード (scancode) とは、コンピュータのキーボードのキーが押されたり離されたりしたときに、キーボードからCPUに送られるコード（符号）のこと。走査コード（そうさコード）ともいう。
概要
コンピュータのキーボードでは、たとえば「A」のキーを押した場合、「A」という文字の文字コード（ASCIIコードなど）が直接送られるわけではない。
キーボードコントローラは、キーの押下あるいは解放を検出すると、そのキーに固有のスキャンコードをCPUに送る。
スキャンコードは、キーボードのキーを物理的に識別するものであり、そのキーの表す文字や機能とは関係ない。
CPUはスキャンコードを受け取ると、キー配列の設定や修飾キー・ロックキーなどの状態を参照して、該当する文字の入力として受理したり、修飾キーやファンクションキーの処理を実行したりする。
キーが押されたときに発生するスキャンコードをメイク (make) コード、離されたときに発生するものをブレイク (break) コードという。同じキーのメイクとブレイクはMSBやプレフィクスコードによって区別されることが多い。オートリピート（タイプマティック）の処理をキーボード側で行う場合、キーが押されている間、メイクコードを周期的に発生する。
スキャンコードの体系はコンピュータの機種によって異なる。また、インタフェース規格によって決まっていることもある。さらに、同じ機種・インタフェースであっても、複数の体系をもっている場合もある。
そのため、オペレーティングシステム (OS) は受け取ったスキャンコードをOS独自の仮想キーコードに変換・統一してから扱うのが一般的である。
キー配列とスキャンコード
キーボードには、国や言語によってJIS配列・US配列などさまざまなキー配列があるが、同じ機種用・同じインタフェースのキーボードであれば、キートップの刻印にかかわらず、物理的に同じ位置にあるキーは同じスキャンコードを発生するのが普通である（たとえば、パーソナルコンピュータ (PC) のキーボードでは、「1」の左のキーはJIS配列では「半角/全角」、US配列では「` ~」であるが、スキャンコードは同じ）。
すなわち、キートップの刻印の違いは多くの場合表面的なもので、物理的な配列が類似していれば、スキャンコードのレベルではほとんど変わりがない（特に欧州各国のキーボードのように、物理的なキー配列に差がない場合は、刻印を無視すればまったく同一のキーボードとみなせる）。
したがって、JIS配列キーボードにUS配列の設定を適用するなどしても、ほとんどのキーは問題なくUS配列として動作する（一部、物理的にキーの有無や位置が異なるものについては、この限りではない）。
Macintosh ADBキーボードのスキャンコード
（スタブ）
PC-9800キーボードのスキャンコード
PC-9800/9821シリーズのキーボードは、いくつかのキーが追加された程度で大きな変化がなかったため、スキャンコードも整然としている。ブレイクはMSBを立てることで表す。リピートはメイクとブレイクの連続を繰り返す。左右のSHIFTキーや右SHIFTの上のリターンとテンキーのリターンはそれぞれが電気的に並列に接続されているため区別することはできない。
一部のハイレゾ機用キーボードにあるHOMEキー（←と→の間）・CLRキー（テンキー）ともに、一般機のキーボードにあるHOME CLRキーとはコードが異なる。
なお、PC-9800シリーズの資料ではスキャンコードでなくキーコードと呼んでいる。