- 締切済み
2進数、2の補数について
issa_srvの回答
- issa_srv
- ベストアンサー率44% (40/89)
コンピュータでは0と1で全ての数字を表現します。 文字列の1ビット目をプラス(0)/マイナス(1)として見て下さい。 0XXX(プラス) 1XXX(マイナス) となります。 ◎プラス表現の例 0111 = 7 一桁目が「0」なのでそのまま2進数で7をあらわしています。 ◎マイナス表現の例 1111 = -1 一桁目が「1」なのでマイナスをあらわしています。 そのまま数えると「-7」に見えませんか? ですが、それは違うのです。 一桁目が1の場合は「反転して1を足す」ことが必要です。 1111 0000(1を0に反転) 0001(1を足す) 「-1」を表していることがわかります。 非常に簡単なので、いろいろな数値を試してみてください。
関連するQ&A
- 2進数の補数表示について
よろしくお願いします 「負の数(-128)を8ビットの2の補数表示するとき、どうなるか?」 の問題で、わからない箇所があります。 1.最上位ビットは正・負を表す。 2.負の数:-127を2の補数を使用して表現する。 (例)-1(10)==> まず、正で考える。 ==> 0000 0001(2) 「確認」 1111 1110(反転) +1(プラス1) ---------- 1111 1111(2)(答え) -127(10) ==>0111 1111(2) まず、正で表す。 「確認」 1000 0000(反転) +1 (プラス1) ---------- 1000 0001(答え) ここからが疑問なんです。 -128(10)の場合 ==>1000 0000(2) まず、正で考える。 「確認」 0111 1111(反転) +1 (プラス1) ----------- 1000 0000(2)(答え) ↑ ・答えがプラスの128(10)=>10000000(2)と同じではない でしょうか? ・このときの最上位ビットは桁上がりの「1」と正負の違 いを表す「1」のどちらを表しているのですか? ・たとえば「負数を2の補数で表すとき,8ビットで 表現できる整数の範囲は10進数でどれか。」など の問題で答えが正の127は理解できるのですが、 負は「-128」ということがよくわかりません。 一応検索をしてみましたが、類似回答では理解できませんでした。よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 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という事になるのでしょうか?お願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- 補数を利用した引き算について
こんにちは。 『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. 実際には 本のように引く数だけを補数にして足し算をして答えを求めているのか、 それとも私のように正の値・負の値、ともに符号付きの表現にして足し算をしているのか、 もしくは、いずれとも違うのか、どうなのでしょうか? また、参考文献などがありましたらご紹介お願いします。 以上ですがよろしくお願いします。
- 締切済み
- 情報処理技術者
- 補数ということばの意味
補数ということばの意味 正確には計算機科学の質問なのですが、カテゴリがないのでここに質問しました。 コンピューターで負の数を表すときに、補数表現を使うことがあります。二進数の負の数を表すときに、"1の補数で表す"というときにはビット反転を行い、"2の補数で表す"というときにはビット反転プラス1を行うということはわかるのですが、"1の補数"や"2の補数"ということばの意味がわかりません。何で、"1の"とか"2の"というのですか?
- ベストアンサー
- 数学・算数
- 2の補数について
情報処理試験(基本情報)用の考え方という前提でお聞きします。 「負数を2の補数形式で表現する2進数の計算で・・・・」という問題がよくあります。 この問題文の中で「10101」などの数(これは5ビットの符号付2進数とします) として記述されているものは、もう2の補数になっていると考えていいのでしょうか? それともこれを、今から2の補数に直すのですか? (もし直すのであれば、最上位ビットの符号が変わるのでしょうか?) 違う言い方をしてみますと「A」の2の補数が「-A」だとしたら、 「-A」の2の補数は「A」になるんでしょうか? それとも「そんな表現はない。-Aの時点ですでに2の補数だ」という ことになるのでしょうか? 解りにくくてすみません。
- ベストアンサー
- その他(プログラミング・開発)
- 負の整数を求める
負の整数を表現する問題で質問です。 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の補数
10進数整数0、11、13を1の補数に変換 10進数整数0、32、45、を2の補数に変換 という問題がよく分かりません。 分かるかたおしえてください。おねがいします。
- 締切済み
- その他(学問・教育)
- 2に補数
10進数から2進数を2の補数にする時はビット反転して1を足すとできますが、2進数から10進数を2の補数にするときも同じくビット反転して1を足すと正解の答えが出るのですが、そのやり方でいいのでしょうか?
- 締切済み
- ハードウェア・サーバー