ここから本文です

シフト演算に関する質問です。(問題、回答共にプリントをそのまま載せてます。) ...

mat********さん

2017/5/318:25:32

シフト演算に関する質問です。(問題、回答共にプリントをそのまま載せてます。)
①:2進数10111010に対して左に5ビット算術シフトせよ。

②:8bitの2進数11001010を
3ビット右に算術シフトした後
4ビット左に論理シフトし、
さらに5ビット右に算術シフトし、
さらに2ビット右に論理シフトし、
3倍した2進数を答えなさい。

と言う問題です。
答えは①は11000000です。
②は10111101です。

他の似たような問題などは解けるのですがこの2つだけ分かりません。
どちらか片方でも構いません。
解説を誰かお願いします。

閲覧数:
104
回答数:
2

違反報告

ベストアンサーに選ばれた回答

wat********さん

2017/5/318:45:47


10111010

左に5ビット算術シフトを順番にかけば
1ビット:11110100
2ビット:11101000
3ビット:11010000
4ビット:10100000
5ビット:11000000




11001010

3ビット右に算術シフト
1ビット:11100101
2ビット:11110010
3ビット:11111001

4ビット左に論理シフト
1ビット:11110010
2ビット:11100100
3ビット:11001000
4ビット:10010000

5ビット右に算術シフト
1ビット:11001000
2ビット:11100100
3ビット:11110010
4ビット:11111001
5ビット:11111100

2ビット右に論理シフトし
1ビット:01111110
2ビット:00111111

3倍は2倍+1倍
1倍:00111111
2倍:01111110

3倍:10111101

  • 質問者

    mat********さん

    2017/5/321:08:17

    最後の3倍は、左に1ビット論理シフトした後元の11001010を加算してもできますか?
    1ビット左にやれば2倍ので、それで元の11001010を足せば3倍になると思ったのですが可能ですか?

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

xtr********さん

2017/5/318:55:33

算術シフト、最左bit(符号bit)は変化しないので、左から2bit目がシフトで消える。
10111010 5bit 算術左
11110100 #1
11101000 #2
11010000 #3
10100000 #4
11000000 #5 答え


11001010 3bit 算術右 最左bit(符号bit)が1なので1が入る
11100101 #1
11110010 #2
11111001 #3
---- 4bit 論理左 論理なので最左bitも影響する
11110010 #1
11100100 #2
11001000 #3
10010000 #4
---- 5bit 算術右
11001000 #1
11100100 #2
11110010 #3
11111001 #4
11111100 #5
---- 2bit 論理右
01111110 #1
00111111 #2 これは10進の63
3倍は189、2進に直して
10111101

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる