PHP オリジナルコード、逆コード、補完コードの紹介
オリジナルコード:
それは「元のバイナリコード」であり、実際には10進数から2進数に変換した後に理解できる文字コードです。元のコードはすべて数値的に理解できます。しかし、実際のコンピュータの動作では、元のコードが使用されないことが多く、逆コードや補コードが問題となります。
これに基づいて、規則: 2 進数の最初のビットは符号ビットであり、0 は正の数を表し、1 は負の数を表します。
例: (例として 8 ビットが使用されています):
7: 00000111
-7: 10000111
逆コード:
正の数の逆コードはそれ自体です。
負の数の補数コードは、元のコードの符号なし部分の各ビットを反転します。 。
例:
7: 00000111
-7: 11111000
補コード:
正の数の補数はそれ自体です
負の数の補数、符号ビットは変化せず、他のビットが反転された後も整数になります1 増加します
例:
7: 00000111
-7: 11111000+1 = 11111001
加算演算:
減算演算:
要約:
1: データ CPU 内部では補数コードに基づいた演算を実行します。
2: 原コード、逆コード、補コードの変換処理はシステムの内部作業であり、符号ビットは変換中に変更されません
3: 2 の補数演算を使用する場合、符号ビットは演算に参加します (つまり、通常の 2 進数として扱われます)
一連のもの (データ) のスイッチ ステータスを管理します
スイッチ ステータス: これはある種のデータであり、値は 2 つだけです利用可能: true、false、1、0、オン、オフ。 。 。
一連のものとは、複数のデータの考えられる外観状態を指します。
管理する必要がある照明スイッチが 5 つあると仮定します。
1: 各電球のステータスを決定します: オン、オフ;
2: 任意の電球をオンにするように指定できます
3:任意の電球を消すように指定できます
前提条件を設定します: これら 5 つの電球には明確な順序があり、5 つの変数を設定します (定数も許容されます)
次のように仮定します1 ~ 5 個の電球の位置は、右から左に数えます - 対応する桁数
最初の電球: $d1 = 1
2 番目の電球電球: $d2 = 2; /00000010
3 番目の電球: $d3 = 4; //00000100
4 番目の電球: $d4 = 8; 5 番目の電球 :$d5 = 16; //00010000
すべての電球の合計状態は次の変数で表すことができます。
If $state = 7; //00000111 は最初の電球を意味します。 、2、3 個の電球が点灯しています
$state = 9; //00001001 の場合は最初、4 つの電球が点灯しています
$state = 13 の場合は最初を意味します。 、2、4 個の電球が点灯しています
$s1 = $state & $dn //ここで、n は 1 ~ 5 のいずれかを表します
結果が $s1 > 0 の場合は電球がオンであることを意味し、それ以外の場合は電球がオフであることを意味します
$state = $state $dn | ここで、n は 1 ~ 5 のいずれかを表します。 >
指定された電球をオフにします:
$state = $state & ~$dn; //ここで、n は 1 ~ 5 のいずれかを表します。