符号付整数
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

[1]

IPv4のヘッダーチェックサムは1の補数を使っている。

指数-仮数部表現で負数の仮数部をビット毎に反転させると、1の補数表現に変換される。
2の補数詳細は「2の補数」を参照

8 ビット 2の補数ビットパターン2の補数表現符号無し表現
0000000000
0000000111
.........
01111110126126
01111111127127
10000000?128128
10000001?127129
10000010?126130
.........
11111110?2254
11111111?1255

0が二種類の表現を持つという問題、キャリーを戻して加算しなければならない問題は、2の補数という体系を使うことで回避できる。2の補数では、負の数は(符号なしの感覚で言うと)1の補数より1だけ大きいビットパターンで表される。

例えば、8ビットの整数では値は右表のようになる。2の補数では、ゼロ(00000000)は一種類しかない。ある値の符号を反転した値を得るには、(元の数値が正か負かに関係なく)全ビットを反転させてから 1 を足す。2の補数での加算は符号無しの数値と同じである(ただし、オーバーフローの検出方法は異なる)。右表を見ればわかるとおり、127 と −128 の加算は、符号無しの 127 と 128 を加算するのと同じである。

ある数の2の補数を簡単に得る方法は以下の通りである。例 1例 2
1. 右端から見ていき、最初の '1' を探す01010010101100
2. その '1' より左側のビット列を反転させる10101111010100

エクセス N

8 ビット エクセス127ビット列エクセス127表現
としての解釈符号なし表現
としての解釈
00000000?1270
00000001?1261
.........
011111110127
10000000+1128
.........
11111111+128255

エクセスN は、事前に定めた正の整数N をバイアス値(偏り)として用いる表現。ある整数は、元の値よりN だけ大きい符号なし整数として表現される。例えば、値 0 は N として表され、値 −N は 0 として表される。N として、2m −1 がよく用いられる。バイアス表現、下駄ばき表現、またはオフセット・バイナリ (offset binary) とも呼ばれる。

この表現は、浮動小数点数の指数部でよく用いられている。IEEE浮動小数点標準では、単精度(32ビット)の指数部は8ビットのエクセス127として定義されている。倍精度(64ビット)では11ビットのエクセス1023である。
比較表

以下の表は 4 ビットでの各表現方法で、最大 +8 から ?8 までの整数を表現したものの比較表である。

4ビット整数表現十進符号無し符号-仮数部1の補数2の補数エクセス7
+81000N/AN/AN/A1111
+701110111011101111110
+601100110011001101101
+501010101010101011100
+401000100010001001011
+300110011001100111010
+200100010001000101001
+100010001000100011000
(+)000000000000000000111
(?)0N/A10001111N/AN/A
?1N/A1001111011110110
?2N/A1010110111100101
?3N/A1011110011010100
?4N/A1100101111000011
?5N/A1101101010110010
?6N/A1110100110100001
?7N/A1111100010010000
?8N/AN/AN/A1000N/A

出典[脚注の使い方]^ ドナルド・クヌース The Art of Computer Programming, Volume 2: 4.1節

参考文献

Flores, Ivan (1963). The Logic of Computer Arithmetic. Prentice-Hall 

Koren, Israel (2002). Computer Arithmetic Algorithms. A.K. Peters. .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}ISBN 1-56881-160-8 

関連項目

整数型

3増し符号

コンピュータの数値表現

負のゼロ










データ型
ビット列

ビット

トリット

ニブル

オクテット

バイト

ワード

ダブルワード(英)

数値

整数型

符号付整数型

十進型(英語版)

有理数型(英語版)

実数型

複素数型

固定小数点型

浮動小数点型

半精度

単精度

倍精度

四倍精度

八倍精度(英語版)

拡張倍精度

ミニフロート


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:17 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef