• ベストアンサー

補数について質問

何度もすみません。 例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、桁あふれ無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、桁あふれを無視するので、補数表現としては61と-39は同じと考えられるからですか? yesかNoかで考え方が合っているか判定してください。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。

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

  • ベストアンサー
  • tadys
  • ベストアンサー率40% (856/2135)
回答No.2

>例えば2進数であれば、ある数aの補数はその数aの負の値ですが これはコンピュータの世界の中での話です。 数学の世界では、補数を取ったから負になると言う事は有りません。 コンピュータの世界では2の補数で負の数を表すと回路が簡単になるので使われています。 コンピュータの世界では、2の補数ではなく、負号ビットを数値とは別に持つやり方も有りますが、その場合、負号ビットを判断して加算をするか減算をするか、減算の場合はどちらから引くのかを判断する必要が有ります。 2の補数表現ではそのような判断をしないで加算が出来ます。

その他の回答 (1)

  • flyingbee
  • ベストアンサー率26% (49/182)
回答No.1

言ってる意味がよく分かりませんが 先頭ビットを符号として扱うからではないですか。 算術ローテートシフトと論理ローテートの違い? 普通はこう考えるから、違ってたらご免ね。

関連するQ&A

  • 補数について質問

    例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、最上位の桁を無視するからですか? 例えば10進数の10の補数では、39の補数は61ですが、最上位の桁を無視するので、-39が補数とも言えますよね? yesかNoかでお答え頂けましたら幸いです。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。

  • 補数について質問

    何度も何度もすみません。 例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、桁あふれ無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、桁あふれを無視するので、補数表現としては61と-39は同じと考えられるからですか? 絶対yesかNoかで考え方が合っているか判定してください。 絶対yesかNoかでお願いします。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。

  • 補数について質問--僕はプログミングしてます

    例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、最上位の桁を無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、最上位の桁を無視するので、-39が補数とも言えますよね? yesかNoかでお答え頂けましたら幸いです。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。

  • 2の補数が成立する理由

    2の補数表現の特長は、桁あふれを無視することで、ある値Aの減算を Aの2の補数の加算として扱うことができるのはわかるのですが この特徴が成立する理由というのが分からないのですが、 どういうことでしょうか?

  • 補数の定義について

    (●一般的に知られた事柄) 10進数の「9の補数」とは,各桁ごとに9からその数字を引いた値をいう. 10進数の「10の補数」とは,各桁ごとに9からその数字を引いた値に1を加えた値をいう. 2進数の「1の補数」とは,各桁ごとに1からその数字を引いた値をいう. 2進数の「2の補数」とは,各桁ごとに1からその数字を引いた値に1を加えた値をいう. (●自分で思った事柄) ですが,では, n進数の「(n-1)の補数」とは,各桁ごとに(n-1)からその数字を引いた値をいう. n進数の「nの補数」とは,各桁ごとに(n-1)からその数字を引いた値に1を加えた値をいう. と言いますか?? 特に, 16進数の「15の補数」とは,各桁ごとに15からその数字を引いた値をいう. 16進数の「16の補数」とは,各桁ごとに15からその数字を引いた値に1を加えた値をいう. と言わずに 16進数の「0x0fの補数」とは,各桁ごとに0x0fからその数字を引いた値をいう. 16進数の「0x10の補数」とは,各桁ごとに0x0fからその数字を引いた値に1を加えた値をいう.と言った方がいいのでしょうか? そもそも例えば10進数でこの9の補数や10の補数の9や10の数字の由来は何なんでしょうか??

  • 補数について質問

    以下はJavaの参考書に掲載されている補数についての問題です。 疑問点にお答えいただけましたら幸いです。 次の10進数の補数を8桁の2進数で求めなさい A 15 B 0 C 1 質問1:Bについて、10進数の補数が0となっていますが、こんなのありえるんですか? 補数の定義は、「ある数 A に加えると、和の桁がひとつ上がる最小の数」ということなので、Bならある数がAが100でそれに加える数が0ということでしょうか? 質問2:質問1で記した定義に従い、補数15のある数Aとは85ですか? 質問3:「次の10進数の補数を8桁の2進数で求めなさい」という問題、そもそもどういう意図があるんですか?何故10進数の補数を8桁の2進数で求めさせるんですか? 質問4:この問題、10進数の補数を8桁の2進数に変換する問題かと思いきや、この10進数の補数を2進数に変換し、さらにその変換した2進数を補数にしたものが答えとなっています。 何故ですか?問題文おかしいような、、、 僕が読解を間違えたのでしょうか?

    • ベストアンサー
    • Java
  • 補数について教えてください!

    情報処理技術者試験の内容なんですが、やり方も理解できず悩んでいます。教えてください。 その1. 2の補数を使って解きなさい   0110  -)0111 ------------ その2. 次の2進数は2の補数であらわした負の値である。符号付きの10進数に変換しなさい。  1) 1001  2) 1010  3) 1111  4) 1000 その3. 次の10進数を2の補数(4ビット)に変換しなさい。  1)-6  2)-3  3)-5  4)-4 本を見ながら解いているのですがいまいち理解できません。お手数お掛けしますが、解る方がいらっしゃいましたら解説付で教えてくださると助かります!よろしくお願いいたします!

  • 2の補数

    (1)10進数1、2、3の値を2進数3桁で記述しなさい。またこれらの2の補数を求め3桁で記述しなさい。 (2)2進数における「2の補数」は、コンピュータにおける数値の扱いにおいて重要な役割を担うことができる。その役割について説明しなさい。 (3) (1)の解答から(2)で解答した役割は適切に機能していることが分かる。その理由を説明しなさい。 (4)2進数で表記したある数値の「2の補数」の求め方としてして、「各桁の1と0を反転し、それに1を加える」という方法がある。この方法が成立する理由を説明しなさい。(ヒント:2^b-1がどういう数であるかを考えるとよい) この問題の(2)からどう説明していいか分かりません。 どなたか教えて下さい。

  • 2の補数について

    情報処理試験(基本情報)用の考え方という前提でお聞きします。 「負数を2の補数形式で表現する2進数の計算で・・・・」という問題がよくあります。 この問題文の中で「10101」などの数(これは5ビットの符号付2進数とします) として記述されているものは、もう2の補数になっていると考えていいのでしょうか? それともこれを、今から2の補数に直すのですか? (もし直すのであれば、最上位ビットの符号が変わるのでしょうか?) 違う言い方をしてみますと「A」の2の補数が「-A」だとしたら、 「-A」の2の補数は「A」になるんでしょうか? それとも「そんな表現はない。-Aの時点ですでに2の補数だ」という ことになるのでしょうか? 解りにくくてすみません。

  • 補数を利用した引き算について

    こんにちは。 『2進数で 111 - 010 を計算をせよ。』 という問題があります。 つまり10進数でいう所の 7 - 2 = 5 の計算をします。 補数を利用すると引き算が足し算ででき、演算が簡単になることを 本は説明しようとしてるのですが、腑に落ちない点があります。 解説では --------------------------------- 引く数 010 の補数を求めると 101 なので  111 +101 -------- 1101  ↓  101 よって桁上がりを無視した 101 が答え --------------------------------- との事ですが疑問に思うことがいくつかあります。 I. 上記の計算では3ビットであることが前提になっています。 7 - 2 = 5 をしたいわけですから、そうすると  111 ←符号なしの表現 ( 7 ) +101 ←符号付きの表現 ( -2 ) -------- 1101  ↓  101 ←符号なしの表現 ( 5 ) となり、符号なしと符号付きの数値を混ざってしまうが、良いのでしょうか? また、この説明の仕方だと答えが 0~7 になる答えしか出せません。つまり引く数の方が大きいと計算できません。 私は補数を使うのであれば正の値・負の値、全て符号付きの値でなければいけないと思っていたので、 もし私が説明するのであれば全て符号付きにし、そして符号付きで7を表せるようにするために4ビットにして  0111 ←符号付き( 7 ) +1110 ←符号付き( -2 ) ---------- 10101  ↓  0101 ←符号付き( 5 ) とするのであれば納得できます。 答えの範囲も -8~7 と負の値も許容できます。 II. 実際には 本のように引く数だけを補数にして足し算をして答えを求めているのか、 それとも私のように正の値・負の値、ともに符号付きの表現にして足し算をしているのか、 もしくは、いずれとも違うのか、どうなのでしょうか? また、参考文献などがありましたらご紹介お願いします。 以上ですがよろしくお願いします。