ビット演算
コンピュータのメモリ内のすべての数値はバイナリ形式で保存されます。 0 と 1 のシーケンスとして。
コンピュータのメモリに数値を保存するには、有限の桁数が使用されます。このため、コンピュータ上の数値の範囲には限界があり、計算結果が不正確になる場合が
あります。
整数は、8、16、32、または 64 ビットのメモリに保存できます。追加ビットごとに、可能な値の範囲が 2 ずつ拡張されます。
正の数値と負の数値の演算は、プロセッサ内で同じアルゴリズムを使用して実行されます。
ビットごとの論理演算を利用して、プロセッサと外部デバイスのレジスタの個々のビットを制御できます。
<頭>
Python 操作 |
目的地 |
<本体>
a & b |
a および b のビット単位の And |
<コード>a | b |
a と b のビット単位の OR |
a ^ b |
a
と b
の X OR |
~a |
a のビット反転 |
a << b |
a から b へのビット単位の左シフト |
<コード>a >> b |
a から b へのビット単位の右シフト |
表>
演算 AND
演算「AND
」を使用すると、マスクが 0 のビットをリセット(ゼロに設定)できます。
マスク –複数ビット数値のビットに対する論理演算の範囲を定義する定数。
D
- データ、M
- マスク
操作 OR
演算「OR
」を使用すると、マスクが 1 であるビットに 1 を書き込むことができます。
演算 排他的論理和
演算「XOR
」 を使用すると、マスクが 1 であるビットを反転できます。
左にシフト
論理 (ビット単位)1 ビット左シフト
ビットは、正の整数を 2 倍にします。
右にシフト
ブール値 (ビット単位) 。右に 1 シフト
正の整数を 2 で割ります。
右シフトにより空いた位置に符号ビットが設定されるため、変数全体の長さを右シフトすることで x
の符号を決定できます。
Problem
数値
x
を与えます。数値の符号を決定します。
例
<頭>
# |
入力 |
出力 |
<本体>
1 |
10 |
1 |
2 |
-10 |
-1 |
3 |
0 |
0 |
表>
関数内ではスペースを 4 つインデントします。
Запрещенные операторы: while;for