整数

8bit

符号無し 0~255 , 2の補数形式の符号有 -128~127

16bit

符号無し 0~65,535 , 2の補数形式の符号有 -32768~32767

32bit

符号無し 0~4,294,967,295の補数形式の符号有 -2,147,483,648~2,147,483,647

64bit

符号無し 0~18,446,744,073,709,551,615 , 2の補数形式の符号有 -9,223,372,036,854,775,808~9,223,372,036,854,775,807

浮動小数点

4倍精度浮動小数点

4倍精度
127126112 111 0
SE:15bit F:112bit
S以外の全ビットが0の場合は0を表す。(F=E=0)
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

拡張倍精度浮動小数点

拡張倍精度
797864 636248 4732 3116 150
SE:15bit F1F2:63bit
S以外の全ビットが0の場合は0を表す。(F1=F2=E=0)
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

倍精度浮動小数点

倍精度
63625251 32 3116 150
SE:11bit F:52bit
S以外の全ビットが0の場合は0を表す。(F=E=0)
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

単精度浮動小数点

単精度
313016 150
SE:8bitF:23bit
S以外の全ビットが0の場合は0を表す。(F=E=0)
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

半精度浮動小数点

半精度
1514109 0
SE:5bitF:10bit
S以外の全ビットが0の場合は0を表す。(F=E=0)
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