山本ワールド
データー型
整数
8bit
符号無し 0~255 , 2の補数形式の符号有 -128~12716bit
符号無し 0~65,535 , 2の補数形式の符号有 -32768~3276732bit
符号無し 0~4,294,967,295の補数形式の符号有 -2,147,483,648~2,147,483,64764bit
符号無し 0~18,446,744,073,709,551,615 , 2の補数形式の符号有 -9,223,372,036,854,775,808~9,223,372,036,854,775,807浮動小数点
4倍精度浮動小数点
127 | 126 | 112 | 111 | 0 | |||||||||||||||
S | E:15bit | F:112bit |
Sは仮数部の符号を表し1の時、マイナス、0のときプラスを表す。
Eが2の指数を表し最大値(全ビットが1 32767)及び最小値(全ビットが0 0)の場合はエラー・無限大(∞)・又は0を表す。
オフセット16383の下駄ばき表現である。
Eは符号無し整数である。
整数部は倍精度浮動小数点が0の場合以外は暗黙のうちに1になるように指数部が調整される。(ケチ表現)
Fは小数部を表し上位ビットから下位ビットに向かい1/2・1/4・1/8 ・・・・ 1/2112(1/5,192,296,858,534,827,628,530,496,329,220,096)の値を示す。
通常以下の式が拡張倍精度浮動小数点が表現する値となる。
(-1)S*(1+F/(2112))*2E-16383
最大値はFの全ビットが1で、Eが32,766の時で以下の値になる。
(1+0xffffffffffffffffffffffffffff/(2112))*232766-16383≒+1.18973 14953 57231 76508 57593 26628 0070*104932
最小値はFが0で、Eが1の時で
(1+0/(2112)*21-16383≒+3.36210 31431 12093 50626 26778 17321 7526*10-4932
拡張倍精度浮動小数点
79 | 78 | 64 | 63 | 62 | 48 | 47 | 32 | 31 | 16 | 15 | 0 | ||||||||
S | E:15bit | F1 | F2:63bit |
Sは仮数部の符号を表し1の時、マイナス、0のときプラスを表す。
Eが2の指数を表し最大値(全ビットが1 32,767)及び最小値(全ビットが0 0)の場合はエラー・無限大(∞)・又は0を表す。
オフセット16,383の下駄ばき表現である。4倍精度の指数の表現範囲と同一の範囲が確保されている。
Eは符号無し整数である。
F1は整数部で拡張倍精度浮動小数点が0の場合以外は必ず1になるように指数部が調整される。
F2は小数部を表し上位ビットから下位ビットに向かい1/2・1/4・1/8 ・・・・ 1/263(1/9,223,372,036,854,775,808)の値を示す。
10進数での有効数字18桁~21桁
通常以下の式が拡張倍精度浮動小数点が表現する値となる。
(-1)S*(F1+F2/(263))*2(E-16383)
最大値はF1とF2の全ビットが1で、Eが32,766の時で以下の値になる。
(1+0x7ffffff/0x80000000)*232766-16,383≒+1.18973 14953 57231 7650*104932
最小値はF1が1、F2が0で、Eが1の時で
(1+0/0x80000000)*21-16383≒+3.36210 31431 12093 5062*10-4932
Excelでは有効数字の範囲が異なり扱うことができない。
以下に拡張倍精度小数点のフォーマットの例を示します。
16進数 | 符号 | 指数 | 仮数 | 算定式 | レジスタ値 | ||||||||||||
9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | S | E | F1 | F2 | ||||
1 | FLD1 | 3F | FF | 80 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0 | 16383 | 1 | 0 | (-1)^0*(1+0/9223372036854775808)*2^(16383-16383) | 1 |
Log2e | FLDL2E | 3F | FF | B8 | AA | 3B | 29 | 5C | 17 | F0 | BC | 0 | 16383 | 1 | 4083141060989546684 | (-1)^0*(1+4083141060989546684/9223372036854775808)*2^(16383-16383) | 1.44269 50408 88963 4074 |
Log210 | FLDL2T | 40 | 00 | D4 | 9A | 78 | 4B | CD | 1B | 8A | FE | 0 | 16384 | 1 | 6096317312558402302 | (-1)^0*(1+6096317312558402302/9223372036854775808)*2^(16384-16383) | 3.32192 80948 87362 3479 |
Log102 | FLDLG2 | 3F | FD | 9A | 20 | 9A | 84 | FB | CF | F7 | 99 | 0 | 16381 | 1 | 1882674540191938457 | (-1)^0*(1+1882674540191938457/9223372036854775808)*2^(16381-16383) | 0.30102 99956 63981 1952 |
Loge2 | FLDLN2 | 3F | FE | B1 | 72 | 17 | F7 | D1 | CF | 79 | AC | 0 | 16382 | 1 | 3562936608347879852 | (-1)^0*(1+3562936608347879852/9223372036854775808)*2^(16382-16383) | 0.69314 71805 59945 3094 |
π | FLDPI | 40 | 00 | C9 | 0F | DA | A2 | 21 | 68 | C2 | 35 | 0 | 16384 | 1 | 5264666879299469877 | (-1)^0*(1+5264666879299469877/9223372036854775808)*2^(16384-16383) | 3.14159 26535 89793 2385 |
0 | FLDZ | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0 | 0 | 0 | 0 | (-1)^0*(0+0/9223372036854775808)*2^(0-16383) | 0 |
3.14159274 | FLD DWORD | 40 | 00 | C9 | 0F | DB | 00 | 00 | 00 | 00 | 00 | 0 | 16384 | 1 | 5264667282465882112 | (-1)^0*(1+5264667282465882112/9223372036854775808)*2^(16384-16383) | 3.1415927410125732421875 |
3.1415926535897931 | FLD QWORD | 40 | 00 | C9 | 0F | DA | A2 | 21 | 68 | C0 | 00 | 0 | 16384 | 1 | 5264666879299469312 | (-1)^0*(1+5264666879299469312/9223372036854775808)*2^(16384-16383) | 3.1415926535897931159979 |
0x8087 | FILD DWORD | 40 | 0E | 80 | 87 | 00 | 00 | 00 | 00 | 00 | 00 | 0 | 16398 | 1 | 37999121855938560 | (-1)^0*(1+37999121855938560/9223372036854775808)*2^(16398-16383) | 0x8087 |
0x314159265358979324 | FBLD TWORD | 40 | 39 | 8B | 83 | C5 | FE | D3 | D4 | 1F | 80 | 0 | 16441 | 1 | 829724454632562560 | (-1)^0*(1+829724454632562560/9223372036854775808)*2^(16441-16383) | 314159265358979324 |
0x87 | FILD DWORD | 40 | 06 | 87 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0 | 16390 | 1 | 504403158265495552 | (-1)^0*(1+504403158265495552/9223372036854775808)*2^(16390-16383) | 0x87 |
倍精度浮動小数点
63 | 62 | 52 | 51 | 32 | 31 | 16 | 15 | 0 | ||||||
S | E:11bit | F:52bit |
Sは仮数部の符号を表し1の時、マイナス、0のときプラスを表す。
Eが2の指数を表し最大値(全ビットが1 2047)及び最小値(全ビットが0 0)の場合はエラー・無限大(∞)・又は0を表す。
オフセット1023の下駄ばき表現である。
Eは符号無し整数である。
整数部は倍精度浮動小数点が0の場合以外は暗黙のうちに1になるように指数部が調整される。(ケチ表現)
Fは小数部を表し上位ビットから下位ビットに向かい1/2・1/4・1/8 ・・・・ 1/252(1/4,503,599,627,370,496)の値を示す。
10進数での有効数字15桁~17桁
通常以下の式が拡張倍精度浮動小数点が表現する値となる。
(-1)S*(1+F/(252))*2(E-1023)
最大値はFの全ビットが1で、Eが2047の時で下表のDBL_MAXの時である。
最小値はFが0で、Eが1の時でDBL_MINである。
以下に倍精度小数点のフォーマットの例を示します。
16進数 | 符号 | 指数 | 仮数 | ||||||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | S | E | F | 4503599627370496 | ||||
1.356200 | 3F | F5 | B2 | FE | C5 | 6C | 5C | FB | 0 | 1023 | 1 | 1604182187203835 | (-1)^0*(1+1604182187203835/4503599627370496)*2^(1023-1023) | 1.35619 99999 85448 | |
DBL_MAX | 1.7976931348623158e+308 | 7F | EF | FF | FF | FF | FF | FF | FF | 0 | 2046 | 1 | 4503599627370495 | (-1)^0*(1+4503599627370495/4503599627370496)*2^(2046-1023) | 1.79769 31348 62315 7e308 |
DBL_MIN | 2.22507 38585 07201 4e-308 | 0 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | (-1)^0*(1+0/4503599627370496)*2^(1-1023) | 2.22507 38585 07201 4e-308 |
単精度浮動小数点
31 | 30 | 16 | 15 | 0 | |||
S | E:8bit | F:23bit |
Sは仮数部の符号を表し1の時、マイナス、0のときプラスを表す。
Eが2の指数を表し最大値(全ビットが1 127)及び最小値(全ビットが0 0)の場合はエラー・無限大(∞)・又は0を表す。
オフセット127の下駄ばき表現である。
Eは符号無し整数である。
整数部は倍精度浮動小数点が0の場合以外は暗黙のうちに1になるように指数部が調整される。(ケチ表現)
Fは小数部を表し上位ビットから下位ビットに向かい1/2・1/4・1/8 ・・・・ 1/223(1/8,388,608)の値を示す。
10進数での有効数字6桁~9桁
通常以下の式が拡張倍精度浮動小数点が表現する値となる。
(-1)S*(1+F/(223))*2E-127
最大値はFの全ビットが1で、Eが126の時で下表のFLT_MAXの時である。
最小値はFが0で、Eが1の時でFLT_MINである。
以下に単精度小数点のフォーマットの例を示します。
16進数 | 符号 | 指数 | 仮数 | ||||||||
3 | 2 | 1 | 0 | S | E | F | 8388608 | ||||
1.356200 | 3F | AD | 97 | F6 | 0 | 127 | 1 | 2988022 | (-1)^0*(1+2988022/8388608)*2^(127-127) | 1.3561999797821044921875 | |
FLT_MAX | 3.40282 3466e+38F | 7F | 7F | FF | FF | 0 | 254 | 1 | 8388607 | (-1)^0*(1+8388607/8388608)*2^(254-127) | 3.40282 3466e38 |
FLT_MIN | 1.17549 4351e-38F | 0 | 80 | 0 | 0 | 0 | 1 | 1 | 0 | (-1)^0*(1+0/8388608)*2^(1-127) | 1.17549 4351e-38 |
半精度浮動小数点
15 | 14 | 10 | 9 | 0 | |||
S | E:5bit | F:10bit |
Sは仮数部の符号を表し1の時、マイナス、0のときプラスを表す。
Eが2の指数を表し最大値(全ビットが1 30)及び最小値(全ビットが0 0)の場合はエラー・無限大(∞)・又は0を表す。
オフセット15の下駄ばき表現である。
Eは符号無し整数である。
整数部は倍精度浮動小数点が0の場合以外は暗黙のうちに1になるように指数部が調整される。(ケチ表現)
Fは小数部を表し上位ビットから下位ビットに向かい1/2・1/4・1/8 ・・・・ 1/210(1/1,024)の値を示す。
通常以下の式が拡張倍精度浮動小数点が表現する値となる。
(-1)S*(1+F/210)*2E-15
最大値はFの全ビットが1で、Eが31の時で以下の値になる。
(1+0x1ff/(210)*230-15≒+65,504
最小値はFが0で、Eが1の時で
(1+0/210)*21-15≒+6.10352*10-5
Copyright (C) 2012 山本ワールド All Rights Reserved.