ちなみに0x***という表記は、***が16進数であることを表すC言語風の表記です。 つまち0x4000とは、16進数で「4000」であることを表します。(よんせん、ではない) 例えば、0x4004番地を「読み出す」と、スイッチの状態がわかり、 0x4000番地に数値を「書き込む」と、7セグメントLEDの0桁目(右端)の 表示を設定できる、というわけです。 なお、書き込み用のものを読み出そうとしても、 正しい値を読み出すことはできません。 つまり右端の7セグメントLEDに表示されている値を調べようと思って、 次のような記述をしても、正しい値は得られません。 (正しくない値が読み出される可能性が高い。 偶然表示されている値が得られることもあるが、 得られないことも多い。 詳細はこちらをどうぞ。) i = num0; /* NG (read) */ if (num0 == 0) /* NG (