-PR-
解決済み

補数の質問

  • すぐに回答を!
  • 質問No.83893
  • 閲覧数243
  • ありがとう数9
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 53% (85/160)

 3ビットの場合,+3の2の補数は何なんでしょうか?
011を1と0をひっくり返して,1を足せばいいのでしょうか?

 でも,教科書には+3の1の補数も2の補数も011とかいてあります。
 これはどういうことなのでしょうか?
通報する
  • 回答数8
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.8

>うーん,そうは書いてないですよ。
>どう書いてあるかというと,「整数の表現法の比較」という欄で表があって
>----------------------------------
>10進│符号と絶対値│2の補数│1の補数
>----------------------------------
>+3 │ 011   │ 011 │ 011
>----------------------------------
>+2…

+3は正の数ですから、「2の補数(表現方式)」「1の補数(表現方式)」で書く場合、
そのまま2進数化して、011を利用するという意味なのです。

つまり、「正の数の場合はそのまま2進数化し、負の数の場合はその数の
絶対値を取ったものの2の補数表現を利用する。」それが、
2の補数表現方式ということです。
したがって、教科書の「補数」という言葉に、前後の関係に注意しながら、
必要に応じて「表現方式」という言葉を補って読んだらいかがですか。

3ビット限定のシステムなら、対応表は
次のようなものになると思います。
----------------------------------
10進│符号+絶対値(表現方式)│2の補数(表現方式)│1の補数(表現方式)
----------------------------------
+3 │ 011   │ 011 │ 011
+2 │ 010   │ 010 │ 010
+1 │ 001   │ 001 │ 001
0 │ 000   │ 000 │ 000
-1 │ 101   │ 111 │ 110
-2 │ 110   │ 110 │ 101
-3 │ 111   │ 101 │ 100
-4 │ 表せない │ 100 │ 011(+3と同表現)
-----------------------------------
この表から、2の補数表現方式の場合なら、
最左端ビットが符号ビットとして利用できることが分かります。

なお、符号+絶対値表現方式というのは、
最左端ビットを符号ビットとし、右2ビットは絶対値の2進数を当てるというものです。

整数の内部表現方式としては、この他に、
「符号無し整数表現方式」や「r増し表現方式」などというのもあります。
お礼コメント
knightluck

お礼率 53% (85/160)

杓子定規な考え方しかできなくて申し訳ありません。
nrbrtさんが書いてくれたとおりの表ですよ。-4はありませんけど。

よく理解できました。付き合ってくれてありがとうございました。
投稿日時 - 2001-06-07 23:22:48
関連するQ&A
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.3
レベル12

ベストアンサー率 31% (161/506)

「+3の2の補数は何なんでしょう?」という質問は、 日本語としておかしいような気がします。 無理に解釈すれば「-3を2の補数方式で表す」という意味になり、 011という値は誤っていることになります。 教科書は「+3を2の補数方式で表す」という意味で、 書いてあるのではないでしょうか。 これなら、符号は意識しなくていいので、 答えはそのまんま011となります。 ...続きを読む
「+3の2の補数は何なんでしょう?」という質問は、
日本語としておかしいような気がします。
無理に解釈すれば「-3を2の補数方式で表す」という意味になり、
011という値は誤っていることになります。

教科書は「+3を2の補数方式で表す」という意味で、
書いてあるのではないでしょうか。
これなら、符号は意識しなくていいので、
答えはそのまんま011となります。
お礼コメント
knightluck

お礼率 53% (85/160)

+3を2の補数方式で表す と +3の2の補数 
はちがうんでしょうか?

もっと勉強したいと思います。
投稿日時 - 2001-06-01 20:10:25


  • 回答No.1
レベル10

ベストアンサー率 32% (71/216)

誤植ではないでしょうか?だって、1の補数も、2の補数もおなじでは変でしょう。 ...続きを読む
誤植ではないでしょうか?だって、1の補数も、2の補数もおなじでは変でしょう。
お礼コメント
knightluck

お礼率 53% (85/160)

でしょう?僕もそう思います。しかし回答早いっすねー(@_@)
投稿日時 - 2001-05-31 22:05:22
  • 回答No.7

教科書をよく読めば、多分「2の補数方式」「1の補数方式」といった意味で書いてあるのでしょう。 「2の補数方式」と「2の補数」とは違うということです。 「整数aが非負のときはそのまま2進数化したものを使い、負のときは|a|の2の補数表現を使う。」 これを「2の補数方式」とか「IBM方式」などという。 このとき、 ・+3の「2の補数方式」あるいは「IBM方式」による内部表現は、a=+3> ...続きを読む
教科書をよく読めば、多分「2の補数方式」「1の補数方式」といった意味で書いてあるのでしょう。

「2の補数方式」と「2の補数」とは違うということです。

「整数aが非負のときはそのまま2進数化したものを使い、負のときは|a|の2の補数表現を使う。」
これを「2の補数方式」とか「IBM方式」などという。
このとき、
・+3の「2の補数方式」あるいは「IBM方式」による内部表現は、a=+3>0だからそのまま011。
・「+3の2の補数」は、011を0,1反転して1足して101。
・-3の「2の補数方式」あるいは「IBM方式」による内部表現は、a=-3<0だから3の「2の補数」を使って101。

「整数aが非負のときはそのまま2進数化したものを、負のときは|a|の1の補数表現を使う。」
これを「1の補数方式」とか「Univac方式」などという。
このとき、
・+3の「1の補数方式」あるいは「Univac方式」による内部表現は、a=+3>0だからそのまま011。
・「+3の1の補数」は、011を0,1反転して100。
・-3の「1の補数方式」あるいは「Univac方式」による内部表現は、a=-3<0だから3の「1の補数」を使って100。
お礼コメント
knightluck

お礼率 53% (85/160)

うーん,そうは書いてないですよ。

どう書いてあるかというと,「整数の表現法の比較」という欄で表があって
----------------------------------
10進│符号と絶対値│2の補数│1の補数
----------------------------------
+3 │ 011   │ 011 │ 011
----------------------------------
+2…

という表になってます。2の補数方式という言葉もみあたりませんでした。

なんにせよ,今までご回答くださった方々のいいたいことは少しずつ分かってきました。ありがとうございます。
投稿日時 - 2001-06-05 20:14:40
  • 回答No.4

ビット数が3ビット限定の場合、3_(10)=011_(2)の1の補数は、100_(2)です。 (ちなみに、「1」(=基数2-1)の補数とは(擬補数ともいう)、桁ごとに足すと、互いに補い合って、 111_(2)になる数のこと。だから0,1反転する。) また、3_(10)=011_(2)の2の補数は、101_(2)です。 (ちなみに、基数「2」の補数とは(真補数ともいう)、足すと、互いに補い合って、 ...続きを読む
ビット数が3ビット限定の場合、3_(10)=011_(2)の1の補数は、100_(2)です。
(ちなみに、「1」(=基数2-1)の補数とは(擬補数ともいう)、桁ごとに足すと、互いに補い合って、
111_(2)になる数のこと。だから0,1反転する。)
また、3_(10)=011_(2)の2の補数は、101_(2)です。
(ちなみに、基数「2」の補数とは(真補数ともいう)、足すと、互いに補い合って、
基数の桁数乗=2の3乗=8_(10)=1000_(2)になる数のこと。だから0,1反転して1足す。)

ともに011と書いてあるのは、教科書が間違っているのでしょう。

注:a_(10)やb_(2)は、それぞれaは10進数、bは2進数という意味です。

また「+3の2の補数」や「+3の1の補数」という言い方は、間違いではありません。
たとえば、このように、1つの整数データを3ビットで表すシステムで、
内部表現形式として「符号なし整数」を使えば、0~2の3乗-1=7までの8通りの整数を表せます。
これに対し、内部表現として「負数を表すのに、2の補数表現を使う」ことにすれば、
(たとえば、「-3」を表すのに、「+3の2の補数表現101を対応させる」ということ)
-2の2乗=-4 ~ 2の2乗-1=3までの8通りの整数を表せるようになる。
これによって、「3を引く」あるいは「-3を足すこと」は、「3の2の補数101を足すこと」となり、
(例:5-3=101+101=1010(ただし最左端の1はこぼれて)=010=2)
引き算も足し算でできる、つまり減算回路を使わずに加算回路だけで
四則演算ができるという利点を生んでいるのです。

参考まで。
内部表現として、「最左端ビットを符号ビット(0のとき正、1のとき負)として使用し、
右2ビットを符号なし整数として読み取ることにすれば」(つまり絶対値表現法)
-3 ~ +3の7通りの整数を表せるようになる。
このとき、ゼロは+0と-0の2通りの表現をもつ。
  • 回答No.5
レベル11

ベストアンサー率 31% (81/257)

おっしゃている意味が分かりました。教科書は合ってますよ!! 計算機には、No.2で申し上げたとおり、 1)「負の数を2の補数で表現するシステム(例:IBM)」 2)「負の数を1の補数で表現するシステム(例:Univac、現Unisys)」 があります。正の数に関しては、1)も2)も同じです。+3なら、 ■011です。 教科書のとおりでしょ?しかし、-3なら、今メンドイので3 ...続きを読む
おっしゃている意味が分かりました。教科書は合ってますよ!!

計算機には、No.2で申し上げたとおり、

1)「負の数を2の補数で表現するシステム(例:IBM)」
2)「負の数を1の補数で表現するシステム(例:Univac、現Unisys)」

があります。正の数に関しては、1)も2)も同じです。+3なら、

■011です。

教科書のとおりでしょ?しかし、-3なら、今メンドイので3ビットとすると、

1)では、101
2)では、110

となります。No.2では「-3」のことを言っているのだと勘違いしました。

蛇足ながら、No.2で述べたとおり、1)では+0と-0が同じで、

・000(+0)
・000(-0)

ですが、2)では

・000(+0)
・111(-0)

となります。このためもあってか、現在のUnixマシンや、PCでは「2の補数」が使われているようです。
  • 回答No.6
レベル11

ベストアンサー率 31% (81/257)

すいません、単純ミスがありました。訂正!! -3: 1)では、101 2)では、100 です。
すいません、単純ミスがありました。訂正!!

-3:

1)では、101
2)では、100

です。
  • 回答No.2
レベル11

ベストアンサー率 31% (81/257)

2の補数なら、101 1の補数なら、100 でしょう? 1の補数の場合、-0と+0が異なることが特徴です。2の補数なら同じ。 昔の汎用機で言うなら、IBMが2の補数、Univacが1の補数。
2の補数なら、101
1の補数なら、100

でしょう?

1の補数の場合、-0と+0が異なることが特徴です。2の補数なら同じ。

昔の汎用機で言うなら、IBMが2の補数、Univacが1の補数。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ