Module: ビット演算 (Python)


Problem

6/13

数値の符号を決定する

Theory Click to read/hide

ビット演算

コンピュータのメモリ内のすべての数値はバイナリ形式で保存されます。 0 と 1 のシーケンスとして。
コンピュータのメモリに数値を保存するには、有限の桁数が使用されます。このため、コンピュータ上の数値の範囲には限界があり、計算結果が不正確になる場合が
あります。 整数は、8、16、32、または 64 ビットのメモリに保存できます。追加ビットごとに、可能な値の範囲が 2 ずつ拡張されます。
正の数値と負の数値の演算は、プロセッサ内で同じアルゴリズムを使用して実行されます。

ビットごとの論理演算を利用して、プロセッサと外部デバイスのレジスタの個々のビットを制御できます。
  <頭> <本体> ab


演算 AND
演算「ANDを使用すると、マスクが 0 のビットをリセット(ゼロに設定)できます。
 
マスク –複数ビット数値のビットに対する論理演算の範囲を定義する定数。

D - データ、M - マスク

操作 OR
演算「ORを使用すると、マスクが 1 であるビットに 1 を書き込むことができます。

演算 排他的論理和
演算「XOR を使用すると、マスクが 1 であるビットを反転できます。

左にシフト
論理 (ビット単位)1 ビット左シフトビットは、正の整数を 2 倍にします。

右にシフト
ブール値 (ビット単位) 。右に 1 シフト 正の整数を 2 で割ります。


右シフトにより空いた位置に符号ビットが設定されるため、変数全体の長さを右シフトすることで x の符号を決定できます。

Problem

数値 x を与えます。数値の符号を決定します。
 
Python 操作 目的地
a & b a および b のビット単位の And
<コード>a | b ab のビット単位の OR
a ^ b OR
~a a のビット反転
a << b a から b へのビット単位の左シフト
<コード>a >> b a から b へのビット単位の右シフト
<頭> <本体>
関数内ではスペースを 4 つインデントします。

# 入力 出力
1 10 1
2 -10 -1
3 0 0
Write the program below
def getSign(x):
    if x != 0:
        mask = 1
    else:
        mask = 0          
# основная программа
x = int(input())
print(getSign(x))
               

     

Program check result

To check the solution of the problem, you need to register or log in!