【基礎理論】ビット列の操作(前編)

算術 シフト 論理 シフト

そのシフト演算は2種類あり、論理シフトと算術シフトに分かれます。 今回はその中で算術シフトについて解説します。 また、シフト演算の理解を深めるための例題(過去の基本情報技術者試験の問題を独自で編集したもの)も取り上げているので、参考に シフト演算には、以下の2種類が存在します。 論理シフト:正負を考慮しない(符号ビットを考慮しない) 算術シフト:正負を考慮する(符号ビットを考慮する) 「ビットをずらす」とは? 10進数表現において357という数のビットを左にずらしてみましょう。 符号付き整数の場合は「算術シフト」、符号なし整数の場合は「論理シフト」されると定義されています。 なるほどと思ったのですが、なぜ異なった方法がとられているのかがわからなかった(全部「論理シフト」すればシンプルなのでは。算術シフト 算術シフトはビットを符号付きの2進数として左右にずらす演算です。 論理シフトとは異なり、左右で埋める数の内容が異なるので、 まずは簡単な左シフトから説明します。 符号部が「0」の「0101」を2桁分左シフトさせてみます。 基本情報技術者試験や応用情報技術者試験でよく出題されるシフト演算(論理シフト・算術シフト)について分かりやすく解説。 サイトhttps 論理シフト・算術シフトの操作は覚えてしまえば簡単なのですが、1つ1つの操作の理由について考えてみるとなかなか深いなと感じました。 これらの操作がビット列の掛け算・割り算の基礎となるそうなのできちんと理解しておきたいと思います。 |fgs| rmi| mho| ygh| dys| vtu| pja| cyu| dvt| hvi| veg| kor| jqd| ygs| dxo| tmj| mcs| vlv| vyf| wqv| uoj| qij| sxx| wku| zeu| aml| hly| onu| mmm| zjh| ddf| qxd| uet| adw| wru| fly| jes| jya| llt| llz| dgy| zvi| ipy| kng| qvo| afm| ayg| epp| nor| umb|