← 基本情報 道場

出題範囲 › 第 15 章 擬似言語プログラミング

ビット演算のプログラム

∧(ビットごとの論理積)は取り出す、∨(論理和)は立てる・合成する、<<・>>(論理シフト)は位置をずらす操作。たとえば x ∧ 00000001 は最下位ビットだけを取り出し、(r << 1) ∨ b は r を 1 桁左へずらして空いた最下位に b を入れる。整数のまま mod 2ⁿ で下位 n ビット、÷ 2ⁿ の商 で右シフトと同じことができる(UTF-8 の符号化など)。

先に学ぶ知識点:ビット演算とマスク、論理シフト、トレース(変数の値を追う)

解説(冒頭)

秒数を「時・分・秒」に分けるときも、余りと商を使う。最後の桁(秒)から順に「s ÷ 60 の余り」を求めて配列に入れ、「s ← s ÷ 60 の商」で 1 つ上の桁へ進む。60 は 60 進数の底で、2 進数なら 2、10 進数なら 10、UTF-8 の継続バイトなら 64(6 ビット分)に当たる。底で割った余りがその桁、商が上の桁に回る数という考え方は、基数変換と同じ。

この続き:解説の残り・インタラクティブ教材 2 個・練習問題は、ログインして学べます。

基本情報 道場で続きを学ぶ →

← リストのプログラム(追加・削除) 探索・整列・最大公約数のプログラム →