• ベストアンサー

2進数の問題なのですが

2進数: 0000 0000 0000 0000 0000 0000 0000 0001 を 2の補数にし、符合つき10進数として読み取ったときの値はいくつになるかという問題なのですが、正解を出せなくて困っています。 自分は以下のように考えたのですが、間違っている箇所を指摘していただけますでしょうか。 1) 補数にすると オール1になる 2) 一番左の桁は符合として読むから、符合は1=マイナス 3) 左から2桁目以降を10進数に読み変えて、2147483647 4) 答えは -214783647 これでバツがついてしまいました。正解は不明です。 よろしくお願いします。

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

  • ベストアンサー
  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.5

1111 1111 1111 1111 1111 1111 1111 1111 は、「-1」です。 1111 1111 1111 1111 1111 1111 1111 1110 が、「-2」です。 1111 1111 1111 1111 1111 1111 1111 1101 が、「-3」です。 というように、数の大小関係と、2進数表現における大小関係とを一致させておいたほうが、二値論理を用いて算術演算を行なう計算機を実現する際に、いろいろと都合が良いのです。 なぜならば、たとえば、足し算を行なう演算を二値論理で実現する際に、正たす正、正たす負、負たす正、負たす負の4通りに場合分けせずに、1通りの論理回路を作ればすむためです。 質問者さんが考えたように「答えは -21478364」としてしまうと、負数の領域において、数の大小関係と2進数表現における大小関係とが逆になってしまい、それで計算機の実現が不可能なわけではないのですが、いろいろと回路規模の増大などの不便が出てきます。 負数の2進数表現の方法自体は決め事に過ぎませんが、なぜそのように決まったかということを、論理回路レベルでわかるようになると、非常にすんなりと理解できると思うのですが。

arietta0406
質問者

お礼

詳細な説明をいただき、ありがとうございました。 仰る通り、ただの規則計算としてではなく、2の補数が使用される意味からしっかり勉強しなおしたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.4

答えは-1です。 2の補数がオール1ですから負の数です。 もう1度、2の補数をとって1。 これに-をつけて-1です。 もっと簡単に言えば1→2の補数→-1です。

arietta0406
質問者

お礼

なるほど!もう一度2の補数をとる作業がぬけていたわけですね… -1 になる理由はしっかり理解できました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

-214783646 では?

arietta0406
質問者

補足

ごめんなさい、その数字になる理由がわかりませんでした。 過程を記載していただけるとありがたいです。

全文を見る
すると、全ての回答が全文表示されます。
noname#20042
noname#20042
回答No.2

答えは -1 と思いますが、説明しにくいので ↓ を参考にしてください。 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fusu.htm

arietta0406
質問者

お礼

ありがとうございます!参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

bitは少ないが、考え方の解説のページです。

参考URL:
http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fusu.htm
arietta0406
質問者

お礼

わかりやすいページをありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2進数の足し算について

    CPUは引き算を行うことができず、2の補数を用いて引き算を足し算として考えれると知りました。 そこで8bitの最上位桁を符号とした7bitの引き算-24+(-8)を計算してみたのですが 24(10進数)→0011000(2進数)→1101000(2の補数) 8(10進数)→0001000(2進数)→1111000(2の補数) 符号 7654321←bit  1 1101000 +1 1111000  X 1100000 となり、1100000の2の補数をとると 0100000(2進)→32(10進数)で答えを求められました。 そこでお聞きしたいのですが、値を足したとき(↑の例だと1100000)が求められたときにどういった条件だと1100000の2の補数をとる必要があるのでしょうか? ↑の例だとXがどの条件のときでしょうか? 質問が長くなってしまいましたがよろしくお願いします。

  • 補数の定義について

    (●一般的に知られた事柄) 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の数字の由来は何なんでしょうか??

  • 負の2進数の表示がわかりません

    Q1:負の数(例えば10進数の[-2])を2進数,4ビットで表すには, 1010(MSDの[1]は[-]を表して,後半の3桁は[2])か 1110([0001]の2の補数) どちらが正しいのですか?(学校ではどちらも習いました) またQ2のような計算をするには補数による表示でないとなりませんか?(絶対値に符号をつけるだけだと計算が合いません) Q2:4ビットで表された2進数の計算で    0101-0010=0101+(1110)=10011 となり,答えが5ビットになってしまいます.下4桁で考えると答えが合っている気がします.これで合っていますか?

  • 2の補数表現2進数が表す10進数は?、

    次の2の補数表現の2進数が表す10進数はいくらか? 1111 1111 1111 1111 1111 1111 1111 1111 という問題があるのですが、 これを解くと、まず、上のビット列は2の補数表現なのだから、これはマイナスですよね?そして、次にビット列を2の補数を求めるやり方でやると元の数がわかりますよね(この辺がいまいち解っていない)? という事は全ビットを0にして、最下位ビットに1を 足せばいいから0000 0000 0000 0000 0000 0000 0000 0000 + 1 =0000 0000 0000 0000 0000 0000 0000 0001 となります。10進数だと 1を表すから答えはー1という事になるのでしょうか?お願いします。

  • 2進法と10進法の演算問題

    2進数→10進数(負の数)<2の補数表現> 8bit(8桁)の一番左のbitは符号bitとする 1)11111111 2)10011100 3)1.0010000 4)1.1100001 上記の問題が分かりません。 4桁ずつに分けて10進法に直して考えればよいのでしょうか? 補数表現自体よく分からないです。

  • 補数について質問

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

  • 自然数の問題

    宜しくお願いします 2けたの自然数aと3けたの自然数bについて、a:b=3:4であり、 √a+bの値が自然数となるとき、a、bの値を求めなさい。 という問題の答えは、a=84、b=112です。 √a+bの値が自然数となるので、11×11=121  12×12=144 ・・・で、 3:4になる数 かつ 7の倍数になる数を見つける方法しか 思いあたりませんでした。 どのように求めたらよいのでしょうか? 宜しくお願いします

  • 補数について質問

    何度もすみません。 例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、桁あふれ無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、桁あふれを無視するので、補数表現としては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。