【質問】負数を2の補数で表現する符号付き16ビットの2進数を16進数で表示したもののうち、4倍するとあふれが生じるものはどれか

このQ&Aのポイント
  • 負数を2の補数で表現する符号付き16ビットの2進数を16進数で表示したもののうち、4倍するとあふれが生じるものはイです。
  • 負数を2の補数で表現する符号付き16ビットの2進数を16進数で表示したもののうち、4倍するとあふれが生じる理由は、4倍すると0111 1111 1111 1100になり、負数が正数になるためです。
  • 最上位の位が左にはみ出ればすべてあふれと認識していましたが、この問題ではイ、ウ、エのいずれもあふれにはなりません。なぜなら、4倍すると0111 1111 1111 1100になり、負数が正数になるためです。
回答を見る
  • ベストアンサー

基本情報の問題にて

負数を2の補数で表現する符号付き16ビットの2進数を16進数で表示したもののうち、4倍するとあふれが生じるものはどれか。  ア  1FFF  イ  DFFF  ウ  E000  エ  FFFF という問題なのですが、 正解はイです。 理由としては、4倍すると0111 1111 1111 1100になり負数が正数になるので、あふれが生じる。という理由だそうです。 ここで、わからないのですがなぜ負数が正数になるとあふれが生じていることになるのでしょうか。 そもそも、あふれとは最上位の位ここでいう2進数の1が左にはみ出ればすべてあふれというのだと認識していました。なので、ここでいえばイ、ウ、エすべてあふれになると思ってしまいます。 上記のようにかなりごちゃごちゃになっているのですが、よろしくお願いします。

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

  • ベストアンサー
  • CMLT
  • ベストアンサー率40% (143/357)
回答No.1

先頭ビットが符号を意味し、コンピュータ内では負数を2の補数表現のままシフトします。2倍するごとに1ビットずつ左シフトし、先頭ビットの符号が変わってしまうようだと「桁あふれ」になります。 4倍なので2進数頭3ケタだけ考えたとき、 110x は2つシフトすると符号が変わってしまいあふれが生じます。 この他、101x や 010x のように符号はたまたま一致するものでも、2倍の段階であふれていて数値として意味なしません。 結論として、4倍してあふれないものは、000x と 111x で始まる物のみ、 つまり、0xxx 、1xxx 、Exxx 、Fxxx 以外は全てあふれが生じます。

rinnshan
質問者

お礼

ありがとうございました。 符号が変わることが桁あふれなのですね。 具体例もつけていただき大変わかりやすかったです。

関連するQ&A

  • 2の補数の問題

    お世話になります。 初歩的な質問で申し訳ございませんが、質問させてください。 ------------------------------------------------------------- 問:負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち、4倍するとあふれが生じるものはどれか。 ア 1FFF イ DFFF ウ E000 エ FFFF ------------------------------------------------------------- 答えはイなのですが、イマイチです。 とある解説だと、4倍すると符号が変わるものがあふれとのことでした。 DFFF →(2の補数)0010 0000 0000 0001 →(4倍する)1000 0000 0000 0100 確かに符号が変わることは分かるのですが、ウでも E000 →(2の補数)0010 0000 0000 0000 →(4倍する)1000 0000 0000 0000 こちらも符号が変わることにはならないのでしょうか? どうぞよろしくお願いいたします。

  • 基本情報技術者

    負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち,4倍するとあふれが生じるものはどれか。 ア 1FFF   イ DFFF   ウ E000   エ FFFF (平成19年春 問3) この問題の解説で E000の2進表示は1110 1111 1111 1111と書いてありました。 どの問題集を見てもそうかいてあります。 1110 0000 0000 0000ではないんですか?? またあふれがでるっていうのはどういうことなんですか? いまいちよくわかりません。

  • 桁あふれがわかりません

    負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち,4倍するとあふれが生じるものはどれか。 ア 1FFF   イ DFFF   ウ E000   エ FFFF (平成19年春 問3) この問題の解説は以下の通りです。 DFFFの2進数表示は、1101 1111 1111 1111 で、4倍すると0111 1111 1111 1100 となり、負数が正数になるのであふれが生じる。 このように書いてありました。 1つ目の質問は、4倍すると1111 1111 1111 1100 となり、正数にはならないのではないか、ということです。 2つ目の質問は、直接この問題には関係ないかもしれないのです。 「元の数が負数のとき、左シフトで0が消えたとき、桁あふれという」と習ったのですが、なぜ0が消えると桁あふれとなるのでしょうか。 以上です。宜しくお願い致します。

  • 問:負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示

    問:負数を2の補数で表現する符号付き16ビットの2進数を16進法で表示したもののうち、4倍するとあふれが生じるものはどれか。 ア 1FFF イ DFFF ウ E000 エ FFFF 以下は、それぞれを2進数表示にしたものです。 先頭の符号ビットは[0]の表記で目立たせてあります。 ア [0]001 1111 1111 1111 イ [1]101 1111 1111 1111 ウ [1]110 0000 0000 0000 エ [1]111 1111 1111 1111 以下は、4倍したもの ア [0]111 1111 1111 1100 イ [0]111 1111 1111 1100 ウ [1]011 0000 0000 0000 エ [1]111 1111 1111 1100 この場合は、ア以外は負数ですが、『負数を2の補数で表現する符号付き16ビットの2進数を、16進数で表現した場合』は16進数が正の数でも、2進数だと負数になると言う事でしょうか? また、符号付きでない場合は、上記はすべて正の数と言う事で合ってますか? 回答を見る感じでは16進数を2進数に変換しただけで、『2の補数で表現』の部分がないように思えます。この辺りも知りたいです。 問題の解き方についても疑問があります。 http://questionbox.jp.msn.com/qa4278151.html での回答では、 イ DFFF →(シフト前)1101 1111 1111 1111 →(シフト後)0111 1111 1111 1100 先頭ビットが1から0に変わったので「桁あふれ」。 問題集の回答ではこっちで説明されていました。 http://okwave.jp/qa/q4302488.html のANo2回答では (シフト前)[1]101 1111 1111 1111 (シフト後)[1]111 1111 1111 1100 2の補数表現による負の数の場合,シフト操作によって1が消えていくのは問題ない。 シフト操作によって0が消えると結果が変になる。これが「あふれ」 符号はシフトさせず、左に2つシフトさせた事で、10が消えた事で桁あふれとしています。 ANo1の回答では、 DFFFだと同様に 1101 1111 1111 1111で1の補数は 0010 0000 0000 0000 2の補数は 0010 0000 0000 0001 つまり、-8193ですよね。 4倍すると、-32772で、これは16ビットの2の補数表現 で表現できる数の範囲からあふれてしまいます。 DFFFなどの2進数に変換後、2の補数を使用するのが正しいのでしょうか? 最初の2つの回答では2の補数を使用していなかったので、疑問に思っています。 頭が混乱しております・・・。 回答宜しくお願い致します。

  • この問題がわかりません

    基本情報試験の過去問をやっているのですが、よく理解できなかったので、解説をお願いします。 ●負数を2の補数で表す 16 ビットの符号付き固定小数点数の最小値を表すビット列を, 16 進数として表したものはどれか。 ア 7FFF    イ 8000    ウ 8001    エ FFFF これの答えはイだそうで、説明では「ア~エの16進数をそれぞれ、2進数、10進数、10進数の絶対値に変換して評価する。」とあり表が載っています。 ア・0111111111111111・・・+32767・・・絶対値が32767 イ・1000000000000000・・・ー32768・・・絶対値が32768 ウ・1000000000000001・・・ー32767・・・絶対値が32767 エ・1111111111111111・・・-1・・・・・・・絶対値が1 これでは、イとウ、エがーの符合になっていますが、なぜそうなるのか、基数変換した時の値はどうやって出しているんでしょうか? 回答よろしくお願いします。

  • 基本情報技術者過去問

    1)負数を2の補数で表す8ビットの数値がある。この値を10進数で表現すると-100である。この値を符号なしの数値として解釈すると、10進数で幾らか? ア)28 イ)100 ウ)156 エ)228 2) 多くのコンピュータが、演算回路を簡単にするために補数を用いている理由はどれですか。 ア)加算を減算で処理できる イ)減算を加算で処理できる ウ)乗算を加算の組み合わせで処理できる エ)除算を減算の組み合わせで処理できる

  • 基本情報技術者試験の問題(進数変換)

    基本情報技術者試験の過去問を解いてるのですが、どうしても分からないんです。 以下原文 負数を2の補数で表現する符号付き16ビットの2進数を16進数で表記したもののうち、四倍するとけた あふれが生じるものはどれか。 不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。DFFFを2進数にする方法は分かるのですが…。 よろしくお願いいたします。

  • 情報数学の問題ですが。

    問12 数値の部分が6けたの符号付き10進数を、パック10進数表記法で表すと、必要なバイト数はいくらか。 ア 3 イ 4 ウ 6 エ 7 問13 1秒間に一定間隔で16個のパルスを送ることができる通信路を使って、0~9、A~Fの16種類の文字を送るとき、    1秒間に最大何文字を送ることができるか。ここで、1ビットは1個のパルスで表し、圧縮は行わないものとする。 ア 1 イ 2 ウ 4 エ 8 理由もお願い致します。

  • 基本情報技術者試験のビットに関する問題

    最上位をパリティビットとする8ビット符号において、パリティビット以外の下位7ビットを得るためのビット演算はどれか。 ア 16進数0FとのANDをとる イ 16進数0FとのORをとる ウ 16進数7FとのANDをとる エ 16進数FFとのXOR(排他的論理和)をとる 解答 ウ なぜ ウ の7FとのANDなのかさっぱり分かりません。 解説お願いします。

  • 基本情報試験の問題で

    基本情報試験の勉強で、この問題がよく意味がわかりません。答えはエだそうですが、どうしてこうなるんでしょうか?解説をお願いいたします。 ●2進の浮動小数点表示で誤差を含まずに表現できる10進数はどれか。 ア 0.2  イ 0.3 ウ 0.4       エ 0.5