• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:算術シフトと論理シフトの違いは?)

算術シフトと論理シフトの違いは?

このQ&Aのポイント
  • 算術シフトと論理シフトはコンピュータの演算命令の一種で、データをビット単位で左右にずらす操作です。
  • 算術シフトは符号ビットを保持したままずらすため、正負の数値を扱う上で有用です。
  • 一方、論理シフトは符号ビットを無視してずらすため、数値の絶対値やビット操作による効率化に利用されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

論理シフトは、レジスタの値を単なるビットの集まりとして扱います。 右シフトするときは左からゼロを補い、左シフトするときは右からゼロを補います。 算術シフトは、レジスタの値を符号付き2進数として扱います。 符号付き2進数は、最上位ビットを符号(0が非負数、1が負数を示す)として扱います。負の数を右シフトしても負の数で有り続けるために、負の数の場合は左から1を補います。非負の数は右シフトしても非負であるために左からゼロを補います。右シフトは数値を2で割ることに相当します。 左シフトでは、右からゼロを補うということで、論理シフトと同じなので、算術左シフトはありません。左シフトは数値に2を掛けることに相当します。絶対値が大きくなるので、8ビット符号付き2進数で表せる範囲(-128~127)から外へ出てしまう可能性があります。これは、シフト前後で符号ビットが変化してしまった場合がそれに該当しますが、このときはオーバーフローフラグが1になるので、桁あふれが起こったことが分かります。

その他の回答 (2)

  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.3

>この質問とこれとは関係あるのですか? はい。

taritarianime
質問者

お礼

じゃあどこが関係あるのですか?

taritarianime
質問者

補足

じゃあどこが関係あるのですか?

  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.1

情報工学かー。 検索スキルないと就職してからつむよ。 http://www.aobasoft.co.jp/casl/html/010_200.htm

taritarianime
質問者

お礼

この質問とこれとは関係あるのですか?

taritarianime
質問者

補足

この質問とこれとは関係あるのですか?

関連するQ&A

専門家に質問してみよう