デジタル回路と二進数

デジタル回路では0と1の記号だけを使った二進数で数を表す
これはエンジニアであれば誰も知ってることだろう
では、何故2進数を使うのか?

### 二進数を使う理由
スイッチをオフにすると高い電圧が発生、スイッチをオンにすると電圧0
この電圧値に対応するルールを決めると、回路はそのルールを表現する回路になる
デジタル回路は電圧の離散値に意味を持たせ、これを処理する

### 2進数
最上位ビットをMSB、最下位ビットをLSB
デジタル回路では0と1しか表せない為、マイナス符号をそのまま扱うことができない その為、補数(complement)を使う
※補数とは「元の数」と「補数」を足すと桁上がりが発生しない数のうち、「最大」の数
10進数で「6」の補数は「4」、「171」の補数は「829」
1195+(10000-171)=10000+1024
結果が補数かどうかはオーバフローが発生したかどうかで判断する オーバーフローが起こらなかった場合は桁数の補数で表す
このようにして減算回路は否定と加算演算で容易に実現ができる
コンピュータでは2進数を4ビットまで対応させた16進数がよく使用される(-8〜7までの数字)
8ビットの場合は256(-128〜127) 2^9=512

varchar(255)なども、電圧の離散値で8ビットの256からきていると考えると理解が深まりますな。