- ベストアンサー
補数について質問--僕はプログミングしてます
例えば2進数であれば、ある数aの補数はその数aの負の値ですが、 その理由は、最上位の桁を無視するからですか? 例えば10進数の10^2の補数表示では、39の補数は61ですが、最上位の桁を無視するので、-39が補数とも言えますよね? yesかNoかでお答え頂けましたら幸いです。 具体的な式で説明します、この考え方も正しいか判定してくだされば幸いです。 (ex:51-39 補数の概念で計算:51+(61-100)=12 (61-100)は最上位の桁を無視する式に対応していて、その答えは-39。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>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を表す, と考えると思います。
その他の回答 (2)
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
考え方は合ってますが、言葉が正確ではないと思います。 (誤り)最上位の桁を無視するので (正しい)最上位の桁からさらに上位へのあふれを無視するので
- misawajp
- ベストアンサー率24% (918/3743)
最上位桁を無視するのではなく、最上位の桁が1(または奇数)ならば負数を表す と言う定義がされていればです 10進の例で 正ならば 61、 負ならば 39を加えれば(1)00になるので-39 補数には全ての桁を満たす数の定義 と 桁あふれさせ全ての桁を0にする数の定義があります