名古屋大学工学部電気電子・情報工学科電気電子工学コース 電気電子数学および演習 ─ 数値解析 ─ (補足資料) 1 符号なし整数表現 unsigned char unsigned short unsigned int unsigned long 1バイト = 8ビット (8桁の0,1の並び) 2バイト = 16ビット (16桁の〃) 4バイト = 32ビット (32桁の〃) 8バイト = 64ビット (64桁の〃) 符号付き整数表現 char short int long 1バイト = 8ビット (8桁の0,1の並び) 2バイト = 16ビット (16桁の〃) 4バイト = 32ビット (32桁の〃) 8バイト = 64ビット (64桁の〃) 2 2の補数表現の例 (4ビットの場合) -8~7 の2の補数表現 0: 1: 2: 3: 4: 5: 6: 7: 0000 0001 0010 0011 0100 0101 0110 0111 −1 : −2 : −3 : −4 : −5 : −6 : −7 : −8 : 1111 1110 1101 1100 1011 1010 1001 1000 負の数の「2 の補数」は その絶対値の二進数 の 0 と1 を反転させて 1 を加えたものである <-3 の2の補数の求め方> 0011 (3の二進数) ↓ 0,1反転 1100 ↓ 1を足す 1101 (-3の2の補数) 3 浮動小数点表現 float double 4バイト = 32ビット (32桁の0,1の並び) 8バイト = 64ビット (64桁の0,1の並び) 符号部 1ビット 0 00100…0 01001000000000000…00 指数部 float: 8ビット double: 11ビット 仮数部 float: 23ビット double: 52ビット 4 浮動小数点表現の例 (float型の場合) float 型は 4バイト= 32ビット (32桁の0,1の並び) 符号部 1ビット (+は0, -は1で表現) 0 00001110 10110000001100000010100 指数部 8ビット 仮数部 23ビット (-127~128 の範囲を表現できるが, 実際は127 (ゲタ) が足されて 0~255 で表わされている) 指数部- ゲタ -1 1 仮数部 2 yyyyyyyy - 127 / - 1. xxxxxxxxxxxxxxxxxxxxxxx 2 符号部 2 10 5 浮動小数点表現の例 (float型の場合) float 型は 4バイト= 32ビット (32桁の0,1の並び) 符号部 1ビット (+は0, -は1で表現) 0 00001110 10110000001100000010100 指数部 8ビット 仮数部 23ビット (-127~128 の範囲を表現できるが, 実際は127 (ゲタ) が足されて 0~255 で表わされている) :指数部が全て0の場合は非正規化数,零を表すので正規化数の表現に使えない :指数部がすべて1の場合は無限大,非数を表すので正規化数の表現に使えない 絶対値が最小の場合, 指数部,仮数部:00…01, 00…00 絶対値が最大の場合, 指数部,仮数部:11….10, 11…11 6 浮動小数点表現の例 (double型の場合) double 型は 8バイト= 64ビット (64桁の0,1の並び) 符号部 1ビット (+は0, -は1で表現) 0 00100…0 0100100000000000000…00 仮数部 52ビット 指数部 11ビット (-1023~1024の範囲を表現できるが 実際は1023 (ゲタ) が足されて 0~2047 で表わされている) 指数部- ゲタ -1 1 仮数部 2 / - 1. xxxxxxxxxxxxxxxxxxxx 符号部 yyyyy x2 y 2 - 102310 7 浮動小数点表現の例 (double型の場合) double 型は 8バイト= 64ビット (64桁の0,1の並び) 符号部 1ビット (+は0, -は1で表現) 0 00100…0 0100100000000000000…00 指数部 11ビット 仮数部 52ビット (-1023~1024の範囲を表現できるが 実際は1023 (ゲタ) が足されて 0~2047 で表わされている) :指数部が全て0の場合は非正規化数,零を表すので正規化数の表現に使えない :指数部がすべて1の場合は無限大,非数を表すので正規化数の表現に使えない 絶対値が最小の場合, 指数部:00…01, 00…00 絶対値が最大の場合, 指数部:11….10, 11…11 8 浮動小数点表現 (float 型) の例 1 -1 0.5 1 0.1 1 . 0 2 2 2 2 0 01111110 00000000000000000000000 1 1 -1 -0.75 - 1 2 - 0.112 - 1.12 2 2 2 1 01111110 10000000000000000000000 指数部 -1127 126 01111110 2 ゲタ 9 浮動小数点表現 (float 型) の例 18.3125 16 2 0.25 0.0625 1 1 4 1 2 2 2 4 2 2 10010.01012 1.001001012 24 0 10000011 00100101000000000000000 指数部 4 127 131 100000112 ゲタ 10 浮動小数点表現 (float 型) の例 -32768 -215 - 1000000000000000.0 2 - 1.0 2 2 15 1 10001110 00000000000000000000000 指数部 15 127 142 100011102 ゲタ 11 -32768を浮動小数点 float型 (4バイト)で表現 -32768 - 1.0 2 215 110001110 00000000000000000000000 同じ-32768を整数 int型 (4バイト)で表現 00000000000000001000000000000000 (32768の2進数) 0 と1 を反転 11111111111111110111111111111111 (-32768の1の補数) 1を加える 11111111111111111000000000000000 (-32768の2の補数) 同じ数字を同じバイト数 (桁数)で表現しても 型によって0,1の並びが異なる. 12
© Copyright 2024 ExpyDoc