• ベストアンサー

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

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

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

  • ベストアンサー
回答No.4

先ず、「符号付き」とあるので、左端の1桁(ビット)は符号(0:正、1:負)であり、残りの15桁が整数値を表すことに注意。 2進数は、16進数と対応させるために4桁で区切って、敢えてブランクを入れると扱い易くなる。 問題の数値の整数部分は、(5FFF) この2進表現は、 101 1111 1111 1111 元に戻すと、 010 0000 0000 0001 <--右端から見て最初の1まではそのまま、それから先はすべて反転させる。 これを10進数に変換すると、 8193=4096 X 2 + 256 X 0 + 16 X 0 + 1 マイナスの符号が付いていたので、本当は(-8193) 16進数は2進の4桁に対応するので、これを10進に変換する際の乗数は暗記した方が良い。 電卓で、16 X =、=、=、とやると出てくる数字、すなわち、16、256、4096、65536、ま、これ以上は無理でしょう.... 負数を2の補数で記憶する意味は、コンピュータの減算回路の合理化だそうです。

参考URL:
http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0

その他の回答 (3)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.3

DFFF ↓(2進化) 1101111111111111 ↓(反転) 0010000000000000 ↓(+1) 0010000000000001 ↓(16進化) 2001 ↓(10進化) 2×16^3+1=2×4096+1=8192+1=8193 どこが判らない? 因みに、4倍するということは左に2ビットシフトするのと同じ事。 1101111111111111 を2回左へシフトすると、符号ビットが0になっちゃうでしょ?

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

http://okwave.jp/qa/q5982301.html の私の過去の回答ANo.3~ANo.5

noname#156136
noname#156136
回答No.1

> 不明な点は選択肢にあるDFFFという16進数表記が10進数にすると「-8193」になると解説に書いてある点です。 それは、「2の補数」を理解していないということですので、まずは参考書で「2の補数」について勉強してください。

関連する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進法で表示

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

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

    負数を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進数10進数の問題です

    試験の過去問を解いてわからないので教えて下さい。 負数を2の補数表現であらわすとき、次の8ビットの2進数は10進数ではいくらになるか。 1. 10011101 2. 01100011 3. 011000.11 です。 解き方は、128.64.32・・・・ のやりかたでしょうか? このやり方であってたとすると、問3の011000の後の.11はどうなるんでしょうか? 問題が分かる方教えて下さい。 お願いします。

  • 記数法(n進数)

    ① −(2D)16 を符号付絶対値 8 ビットで表す ② −(146)8 を「負数は 2 の補数で表現する」8 ビットで表す ③ 符号付絶対値 8 ビット (10110101)2 を 10 進数で表す ④「負数は 1 の補数で表現する」 8 ビット (01011001)2 を 8 進数で表す ⑤「負数は 2 の補数で表現する」 8 ビット (10111011)2 を 16 進数で表す ()の後の数字は小文字です。 n進数からm進数への変換と計算はできるようになったのですが、ビットの表現などが分からないので教えて頂きたいです。

  • 基本情報技術者過去問

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

  • 基本情報技術者試験 論理演算に関する問題

     最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。 ア 16進数0FとのANDをとる。 イ 16進数0FとのORをとる。 ウ 16進数7FとのANDをとる。 エ 16進数FFとのXOR(排他的論理和)をとる。 (基本情報技術者試験 平成18年度春季午前 問6) この問題の解説お願いします。パリティビットって何ですか。いまいちよく分かりません。

  • 情報処理試験の問題がわかりません。助けてください。

    情報処理試験の問題がわかりません。助けてください。 ある整数値を、負数を2の補数で表現する2進表記法で表すと最下位2ビットは”11”であった。10進表記法のもとで、その整数値を4で割ったときの余りに関する記述として、正しいものはどれか。ここで、除算の商は、絶対値の端数が切り捨てられるものとする。 - ア その整数値が正であれば3 イ その整数値が負であれば3 ウ その整数値が負であればー3 エ その整数値の正負にかかわらず0 解答 ア - 情報処理試験の問題です。 どなたかわかりやすく、解説していただけないでしょうか? よろしくお願い致します。

専門家に質問してみよう