
No.2ベストアンサー
- 回答日時:
No.1 です。
ちょっと長くて分かりづらいかもしれません。要するに
「10 進数の -20」の2進数表記は
-20[10] = 1110 1100[2]
であって、
1001 0100[2]
ではない、ということです。
1001 0100[2] = -108[10]
になってしまいます。
「2の補数表現」によるマイナスの表記は、「正の数」から「2の補数」で作るものであって、「(絶対値の)10進数から2進数への変換」に「負号」を付けた表記ではないからです。
そこの「基本」をしっかり理解できるように、#1 にちょっと長い説明を付けました。
No.1
- 回答日時:
ビット数の決まった「2進数」の「2の補数」とは、相互に足し合わせると「桁あふれ + 0」になる数のことです。
「8ビットの数」であれば、たとえば「0111 0101」があるときに、これとは別の「1000 1011」という2進数を考えます。
そうすると
0111 0101 + 1000 1011 = 1 0000 0000
になるので、右辺の「最上ビット(9ビット目)」が「桁あふれ」で消えるとすれば
0111 0101 + 1000 1011 = 0000 0000
ということになって、「たし合わせると 0 になる数」なので
「0111 0101」の絶対値が同じ負の数は「1000 1011」
ということになります。
それが「2の補数」です。
このためには、「すべての数を8ビットで表わす」(9ビット目は無視する)という「固定ビット数」の表記であることが条件です。
この方式だと、「8ビット」なら
・正数:0000 0000 ~ 0111 1111(10進数で 0~127)
・負数:1111 1111 ~ 1000 0000(10進数で -1~-128)
ということになります。
このように、再上位ビットが「0」なら正数を、「1」なら負数を表わすことになり、実質的に「最上位ビットが符号を表す」ことになります。ただし、負数の場合には残りビットをそのまま読んでも「絶対値」にはならないので要注意です。(あくまで「足して 0 になる」という数ですので)
「2の補数」の作り方は
・元の数:0111 0101
↓
・0 と 1 とを逆転させる
→ 1000 1010
(これを「1の補数」と呼ぶことがある)
↓
・それに「1」を加える
→ 1000 1011
で出来上がり。
この「2の補数の作り方」は「正数→負数」を作るときだけではなく、「負数→整数」を作るときも全く同じです。
試しにやってみてください。
これを
20[10] = 0001 0100[2]
にあてはめれば、「-20[10]」の「2進数の2の補数」は
・元の数:20[10] = 0001 0100[2]
↓
・0 と 1 とを逆転させる
→ 1110 1011
↓
・それに「1」を加える
→ 1110 1100
です。
そして
-20[10] = 1110 1100[2]
の「2進数の2の補数」は
・元の数:-20[10] = 1110 1100[2]
↓
・0 と 1 とを逆転させる
→ 0001 0011
↓
・それに「1」を加える
→ 0001 0100
で、
0001 0100[2] = 20[10]
となって、もとの「正の数」に戻ります。
>-20の場合は符号+絶対値の1001 0100を
そもそもその「-20[10]」の2進数表記が間違っています。
1001 0100[2] は
・元の数:1001 0100[2]
↓
・0 と 1 とを逆転させる
→ 0110 1011
↓
・それに「1」を加える
→ 0110 1100
ですから、
0110 1100[2] = 64 + 32 + 8 + 4 = 108[10]
ということです。
従って、あなたの書いた2進数は
1001 0100[2] = -108[10]
ということなのです。
「2の補数」を使った2進数では、それを見ただけでは「負の絶対数」は分かりません。あくまで「正の数」と足し合わせると(桁あふれを無視すると)「0」になる、というだけの表記ですから。
そこを誤解しないように。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- 情報処理技術者・Microsoft認定資格 2進数の問題を教えてください。 1 2022/07/27 09:42
- 数学 数学の質問です。 2直線の交点の問題でx−y+5+K(2x+y+1)=0などの式のときもとの2つの直 5 2023/01/24 19:35
- 計算機科学 6ビット(符号含む)の二進数 4 2023/04/16 13:22
- 大学・短大 【線形代数について質問です】 点P(2.-1)を点Q(2.1)に写す原点を中心とする回転を表す1次変 1 2023/06/11 14:28
- 数学 写真の数学についての質問です。 判別式を求めるとき、解の実数の数は2個で有ることが確定しているのに、 1 2023/06/27 01:25
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- その他(データベース) 4進数風なバーコードは何ですか? 2 2022/11/28 23:33
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL16進⇒浮動小数変換したい
-
エクセルでビット1をカウント J...
-
6ビット(符号含む)の二進数
-
基本情報技術者試験のビットに...
-
2ビット、3ビット、4ビットのグ...
-
【有効数字について】 授業で、...
-
KBのMB違いって
-
アルファベット30文字は何バイ...
-
1テラバイトに、CDが何枚はいる...
-
EXCELでの16進数取り出し、上...
-
VBSとVBA
-
命令網羅率の計算問題です
-
ブルーレイ2層50GBの焼き...
-
PICマイコンのプログラムについ...
-
テキストの半角文字を全部削除...
-
1KBは、2の8乗X1000ではない...
-
1秒は何ミリ秒とか、単位変換の...
-
組み込みCプログラムで実数型
-
携帯電話の略語であるMBって英...
-
GB と Gbの違いの意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL16進⇒浮動小数変換したい
-
6ビット(符号含む)の二進数
-
2ビット、3ビット、4ビットのグ...
-
エクセルVBAで xlOn xlOff の切替
-
エクセルでビット1をカウント J...
-
16ビットの符号付固定小数点...
-
浮動小数点の問題です。
-
ALUのオーバーフローフラグの生...
-
2の補数について
-
16ビット浮動小数点数の表現...
-
基本情報技術者試験のビットに...
-
8ビットを2進数で表現すると…
-
ビット数と表現できる数の範囲...
-
仮想通貨の投資に詳しい方
-
9ビットの2進数を符号付整数…
-
SSDのデータがビット落ちにより...
-
先程+20の2の補数表現を質問さ...
-
データ量の単位について教えて...
-
【有効数字について】 授業で、...
-
KBのMB違いって
おすすめ情報