- ベストアンサー
2の補数表現を理解するには
LN-TFの回答
- LN-TF
- ベストアンサー率53% (320/596)
一応御説明致します。 2の補数は、一般には2進数が前提となります。 2進数ですから0と1としかありません。 0⇒1⇒10⇒11⇒100・・・ となります。 普通の手書きの場合は幾らでも桁は増やせますが、電卓やコンピュータの中では桁数は限界があります。 今簡単のために、4桁の場合を例にとってみます。 すると、まず0000がゼロになります。+1で、0001となります。以下0010、0011…となって行きます。 さて、0001+1111はどうなるでしょうか? 桁上がりができるのならば、10000ですが、4桁しかないので桁上がりをした先頭の「1」はこぼれてしまい0000となってしまいます。 つまり、1111を加える事は、マイナス1を加えた事と結果として同じい事になります。つまり1111をマイナス1の代わりに使う事によって足算だけで引算と同じ事をやろうと云うのです---これが2の補数の存在意義です。(コンピュータで純粋の引算を行わせるよりも2の補数を作ってそれを加算した方がコンピュータを作る上では楽なのです) ある数字を得て、それの2の補数を拵えるのには、二段階で行います。 ビットを裏返しににします。(各桁毎に0なら1に1なら0にする)それに1を加えます。 これでお解りいただけたでしょうか?
関連するQ&A
- 補数表現で表現できる数値の範囲
8ビット固定小数点(補数表現)で表現できる数値の範囲を 求める問題があります。 この場合の補数表現は2の補数且つ符号付絶対値表現なのでしょうか? また、この問題の解説をお願いします。
- ベストアンサー
- 情報処理技術者
- 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の補数について
情報処理試験(基本情報)用の考え方という前提でお聞きします。 「負数を2の補数形式で表現する2進数の計算で・・・・」という問題がよくあります。 この問題文の中で「10101」などの数(これは5ビットの符号付2進数とします) として記述されているものは、もう2の補数になっていると考えていいのでしょうか? それともこれを、今から2の補数に直すのですか? (もし直すのであれば、最上位ビットの符号が変わるのでしょうか?) 違う言い方をしてみますと「A」の2の補数が「-A」だとしたら、 「-A」の2の補数は「A」になるんでしょうか? それとも「そんな表現はない。-Aの時点ですでに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 こちらも符号が変わることにはならないのでしょうか? どうぞよろしくお願いいたします。
- ベストアンサー
- 情報処理技術者
- 補数について質問
何度も何度もすみません。 例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、桁あふれ無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、桁あふれを無視するので、補数表現としては61と-39は同じと考えられるからですか? 絶対yesかNoかで考え方が合っているか判定してください。 絶対yesかNoかでお願いします。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。
- ベストアンサー
- 数学・算数