- このトピックは空です。
- 投稿者投稿
nobody
ゲスト論理シフトのビット列を右にずらす・左にずらすことは理解しています。
しかし、ビット列の定員?がどうやって決まるのか分からないです。解説ではビット列は8個の枠で書かれていますがなぜ8個が基準なのでしょうか。登場する過去問題はビット列が10個でシフト演算が行われています。
また、同じ過去問題で、2進数111がビット列に入れたると0111になり、先頭に0がつく理由が分かりません。
どなたか教えてください!
nobody
ゲスト「8ビット=1バイト」ということもあり、8ビットがよく用いられると、どこかに書かれてませんでしたっけ?
シフト演算の桁数は、電卓の桁数と同じようなイメージで、
演算結果となる値が、そのビット数(枠)で表示しきれない場合は、エラー(オーバーフロー・アンダーフロー)となるだけです。
例えるなら、2桁表示の電卓を渡されて、(10進数)10×10を計算しなさいと問われたってできないというイメージ。
何桁表示の電卓を使うのかは自由です。
試験では、こちらが考えることではなく、問題で提示されることです。
ちなみに、強いて桁数を答えるような問題だとするならば、
それは、計算結果を表示できる桁数です。
(10進数)10×10で必要最低限の電卓の桁数は、3桁です。nobody
ゲスト先頭に0が付く理由は、右詰めで値を入れていき余ったボックスは0で埋めるってだけです。
4ビット(4ボックス)に「101」を入れると…
□101
↑
これどうする?何も入れなかったら?
「101」表示ですよね?見る人は「あれ?3ビットかな?」と勘違いする
だから、0で埋めてやれば「0101」となり、見る人も「4ビットだね」と認識できる!nobody
ゲスト8ビットが多いと書いてありました!だから使われる、ということなんですね。桁数のイメージが湧きました。
数字を右詰めで入れないと何ビットか分からなくなる、という感覚がなかったです。すっきりしました。
ありがとうございます!とても助かりました。
- 投稿者投稿

