みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

例えば2進数であれば、ある数aの補数はその数aの負の値ですが、
その理由は、最上位の桁を無視するからですか?
例えば10進数の10^2の補数表示では、39の補数は61ですが、最上位の桁を無視するので、-39が補数とも言えますよね?


yesかNoかでお答え頂けましたら幸いです。

具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。



(ex:51-39

補数の概念で計算:51+(61-100)=12

(61-100)は最上位の桁を無視する式に対応していて、その答えは-39。

投稿日時 - 2012-02-16 07:57:20

QNo.7308048

すぐに回答ほしいです

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

>10進数の10^2の補数表示では、39の補数は61ですが、最上位の桁を無視するので、-39が補数とも言えますよね?

違うように思います。
39の補数は61である。
補数表現として61は,-39を表す。
であって,
「39の補数が-39である」とは言わないと思います。

51-39を補数の考え方で計算すると,
51+(100-39)=51+61=112
100以上へのあふれを無視して,12

>2進数であれば、ある数aの補数はその数aの負の値ですが、
これも違うように思います。レジスタが8bitであれば,
39の補数は256-39=217=11011001(2進数)です。
2進数の11011001は,本来は217(十進数)です。

「補数表現」では,最上位MSBが1のときは256を引いた数値を表すと約束する。
(あるいは,MSBは+128でなく,-128の重みをつける)
よって217-256=-39を表す,
と考えると思います。

投稿日時 - 2012-02-16 20:03:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

考え方は合ってますが、言葉が正確ではないと思います。

(誤り)最上位の桁を無視するので
(正しい)最上位の桁からさらに上位へのあふれを無視するので

投稿日時 - 2012-02-16 09:51:11

ANo.1

最上位桁を無視するのではなく、最上位の桁が1(または奇数)ならば負数を表す と言う定義がされていればです

10進の例で 正ならば 61、 負ならば 39を加えれば(1)00になるので-39

補数には全ての桁を満たす数の定義 と 桁あふれさせ全ての桁を0にする数の定義があります

投稿日時 - 2012-02-16 09:25:22

あなたにオススメの質問