No.5ベストアンサー
- 回答日時:
以下の説明はお使いのコンピュータと同じ「負の数が2の補数表現」という前提です。
世の中には「負の数が1の補数表現」であるコンピュータが少なからず存在します。
単純化するために4ビットのintで説明します。
4ビット表現可能な2進数は
0000,0001,0010,0011,0100,0101,0110,0111,
1000,1001,1010,1011,1100,1101,1110,1111
の16種類です。
0000(二)は明らかに0(十)です。
よって、これをベースに考えます。
1111(二)+1(二)の計算結果は10000(二)となり、前提である「4ビット」の範囲を超えます。
最上位の1ビットがオーバーフローとなり0000(二)となります。
結果、1111(二)+1(二)=0000(二)となります。
0000(二)は0(十)です。
見方を変えると
X+1(二)=0(十)
ですから
X=0(十)-1(二)
です。
Xは明らかに-1(十)です。
よって、1111(二)=-1(十)という考え方ができます。
しかし、この考え方を16種の2進数すべてに当てはめると
1111(二)=-1(十)
1110(二)=-2(十)
...
0010(二)=-14(十)
0001(二)=-15(十)
0000(二)=-16(十)
となってしまい「2進数を見ただけでは正負の判別ができない」という状況になります。
そこで『最上位のビットが1の時を負の数とする』というルールが付け加わりました。
0000(二)=0(十)
0001(二)=1(十)
...
0110(二)=6(十)
0111(二)=7(十)
1000(二)=-8(十)
1001(二)=-7(十)
...
1110(二)=-2(十)
1111(二)=-1(十)
7(十)+1(十)=-8(十)ということになります。
No.3
- 回答日時:
勘違いがあるようです。
>範囲を超えた整数は計算機内でマイナスがつくんですが、どうしてでしょう
か?
範囲を超えればオーバフローですからマイナス以外の印を付けるべきですね。
でも表現の手段が無いのでマイナスで代用しているのかもしれません。
32ビットのINTの表し方です。
頭の1ビットは符号を表すのに使います。(0:正、1:負)
数字のゼロは正の側のゼロを使います。
それで -(2^31)~0~(2^31-1)です。全部足すと2^32個です。
負の数は当然2の補数を使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 統計学 統計検定2級の過去問について 1 2023/01/04 16:40
- 大学受験 条件に当てはまる国公立大学教えてください。 0 2023/04/18 04:00
- IT・エンジニアリング IT業界ほぼ未経験で28歳からインフラエンジニアになれますでしょうか 7 2023/05/04 17:41
- 数学 方程式 √x=-1 の解 2 2022/07/08 17:26
- 小学校 算数の問題で悩んでいます。 2つの数A,Bを四捨五入して整数の概数にすると、順に25と3になりました 5 2023/08/21 15:05
- 中学校受験 中学受験 3 2022/11/13 21:17
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- 中学校 理科だけが極端に苦手 5 2022/09/10 14:18
- 数学 『数は実在するのか』 6 2023/06/04 15:15
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
6ビット(符号含む)の二進数
-
16ビットの符号付固定小数点...
-
ALUのオーバーフローフラグの生...
-
16ビット浮動小数点数の表現...
-
【有効数字について】 授業で、...
-
携帯電話の略語であるMBって英...
-
ワードの改行について
-
アルファベット30文字は何バイ...
-
もしコンピューターが2進数か...
-
16bitはダイナミックレンジが97...
-
文字の容量(サイズ)についての...
-
8進数 8進数の47+32の答えを 8...
-
EXCELでの16進数取り出し、上...
-
1Mバイトって何バイト?
-
ffftpのサイズの単位は何でしょ...
-
文字数(バイト数)の数え方が...
-
H8Sで割り込み発生時の飛び先ア...
-
KBとMB
-
文字化けはなぜ日本語が入って...
-
実行計画の「COST」と「BYTE」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SSDのデータがビット落ちにより...
-
EXCEL16進⇒浮動小数変換したい
-
6ビット(符号含む)の二進数
-
エクセルVBAで xlOn xlOff の切替
-
2ビット、3ビット、4ビットのグ...
-
ALUのオーバーフローフラグの生...
-
エクセルでビット1をカウント J...
-
9ビットの2進数を符号付整数…
-
データ量の単位について教えて...
-
16ビットの符号付固定小数点...
-
先程+20の2の補数表現を質問さ...
-
16ビット浮動小数点数の表現...
-
基本情報技術者試験問題
-
2進数の補数表示について
-
(<<1) & 0xeeeeなどが分かりません
-
2の補数形式において、アンダー...
-
基本情報処理技術者試験問題が...
-
浮動小数点の問題です。
-
●ビットで表現できる状態は、最...
-
【有効数字について】 授業で、...
おすすめ情報