負の整数を表現する代表的な方法について

このQ&Aのポイント
  • 負の整数を表現する方法には、1の補数による表現、2の補数による表現、絶対値に符号を付けた表現があります。
  • 4ビットのパターン1101をa~cの方法で表現した物と解釈したとき、値が小さい順になるようにこの三つの方法を並べると、ウ b,c,aとなります。
  • 現在のコンピュータは2の補数による表現を採用しているため、bの表現方法が一般的です。しかし、なぜaとcの表現方法が存在するのか、減算はどのように実現されているのかは分かっていません。
回答を見る
  • ベストアンサー

負の整数を表現する代表的な方法について

基本情報技術者試験に出題された問題について質問です。 ---------------------------------------- 問3 負の整数を表現する代表的な方法として、次の3種類がある。     a 1の補数による表現     b 2の補数による表現     c 絶対値に符号を付けた表現(左端ビットが0の場合は正、1の場合は負) 4ビットのパターン1101をa~cの方法で表現した物と解釈したとき、値が小さい順になるようにこの三つの方法を並べたものはどれか。 ア a,c,b イ b,a,c ウ b,c,a エ c,b,a ---------------------------------------- 上記の問題において、aやcの表現を使ったコンピュータは存在するのですか?それから、何故aとcの表現方法があるのですか? bについては、この表現方法を用いることにより減算も加算と同様に処理できるという利点があるため、現在のコンピュータがこの表現方法を採用しているというのは納得できます。 しかし、aとcの表現方法は何が利点で考え出されたのかがわかりません。そして、減算をどのように実現しているのですか? ご存知の方、ご教授をお願い致します。

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

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

一応aやcのコンピュータも存在するみたいです。 詳しくは参考URLをご覧ください。 なんでいろいろあるのか、というのは、学生の頃に 習ったような気もしますが、遥か昔のことなので 忘れてしまいました(^^; ただ参考URLにもありますが、普通に考えたとき 最初に思いつくのはcの表現になると思います。 私たちは2の補数による表現と、その他の表現を 並べて比較することができるため、2の補数以外で 負の整数を表現することのデメリットが目に付いて しまいますが、それも先人たちの試行錯誤の結果に よって得られた解答の一つであると思ってみれば なにか感慨深く思える気がします。 答えになっていないかもしれませんが参考になれば。

参考URL:
http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE
chaigon
質問者

お礼

お礼が遅くなり申し訳ございません。 なるほど。過去の試行錯誤を得て今があるわけですね。 何をするにも初めから完璧な答えが見つかるわけありませんしね。 ありがとうございました。

関連するQ&A

  • 負の整数を求める

    負の整数を表現する問題で質問です。 4ビットのパターン1101を下記の通りに求め、小さい順に並び変える場合、 1, 1の補数による表現 2, 2の補数による表現 3, 絶対値に符号を付けた表現(先頭ビットが0は整数、1は負数) 1の補数は反転なので、0010とわかりますが、回答にこれは10進数の2だからと書いてありました。そこまではわかります。ただ、そのあとに、10進数の2だから、1101はマイナス2、とありました。なぜここでマイナス2となるのでしょうか? 2の補数の場合は反転した1の補数に1を加算して、0011とわかりました。しかし、またそれはマイナス3となっています。 3の絶対値に限っては先頭ビットは1なので負で、残りの3ビットは101で、10進数の5だから、マイナス5とあります。これに限ってはよくわかりません。 どなたか説明をお願いします。

  • 基本情報技術者過去問

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

  • 問:負数を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の補数を使用していなかったので、疑問に思っています。 頭が混乱しております・・・。 回答宜しくお願い致します。

  • 論理回路

    この問題教えていただけませんか (1)次の減算を符号無し4ビットで補数計算をせよ。 (1) +5 -)+6   0101 +) (2) -5  -)-4 (2)次の16進数減算を補数加算せよ。 (1)4B0C -) 3A56・・・3A56の16の補数を加算

  • Javaにて負の符号付整数を表現する場合、2の補数を必ず使用するのでしょうか?

    とある、ホームページに、 「Javaでは、負の符号付整数を表現するのに、2の補数 (2's complement) を使います。」 との記述があったのですが、負数表現は必ず2の補数のみなのでしょうか。例外が考えられる場合はありえるのでしょうか。 御回答の程、宜しくお願い致します。

    • ベストアンサー
    • Java
  • 8ビットを2進数で表現すると…

    質問です。 符号付の整数を8ビットの2進数で表現するとき、00110111-11000001の演算結果はどのようになるのでしょうか? 符号ビットは左端にあり、負数は2の補数で表します。

  • 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 こちらも符号が変わることにはならないのでしょうか? どうぞよろしくお願いいたします。

  • 中1数学

    次の問題が途中で行き詰まっているのですが、ヒントを下さる方はいませんか? a,b,c,d,eはどれも0でない数であって次のア,イ,ウ,エ,オを満たします。a~eの正負を答えましょう。 アc-aは負 イdはeより小さい ウ b×cは負 エ a×cはdより小さい。 オ c×dはb×eに等しい アよりc<aですよね。でも正負は解りません。イよりd<eですよね。ウよりbとcは異符号ですよね。エよりac<dですが符号が解りません。オよりcd=beですが、これも符号がわかりません。 答えとしては、aとbが正で、残りは負です。逆算すればわかりますが、解けません。ヒントなどを教えていただけないでしょうか。

  • 符号付の整数8ビット…

    教えてください。 符号付整数8ビットの2の補数で表現するときの11101111-11110011の計算を2進数で示すときの途中の計算方法を教えてください。 10進数のー13を8ビットの固定小数点(負数は2mの補数形式)の途中の計算方法も教えてください。

  • 負の二進数

    2の補数表現を用いた符号付き8ビットの2進数のとき 10進数で -6 の値はどうなるのでしょう・・・? 16進数時の値と考え方も教えていただければ幸いです・・。 よろしくお願いいたします。

専門家に質問してみよう