記事ディレクトリ
1、フロート、ダブルメモリ
デバッグコード:
#include<stdio.h>
int main() {
float a = 5.0f;
double b = 5.0;
return 0;
}
デバッグ結果:
浮く:
ダブル:
2.2進数の小数
0.1は2の-1乗を表します。つまり、
0.50.01は0.25
を表します。0.75の場合は0.11
2の累乗を正確に組み合わせることができないため、一部の値を正確に表すことができません。
3.IEEE754標準
表現:バイナリ科学的記数法
符号ビットS:0が正で1が負。
有効数字M:ゼロ以外の値で始まる左から右へのすべての数字。
桁E:小数点と最初の桁の間の距離。
例:9.0、1001ポイント0000。
S:0
M:1.001
E:3
ストレージ:32ビット浮動小数点
1 S、8 E、および残りの23M。
ストレージ:64ビット浮動小数点
1 S、11 E、および残りの52M。
中小企業
S:1ビット、0または1。
手つかず。
M:8桁または11桁。
常に1から始まるので、取り出したら取り外して追加してください。
E:符号なし、23ビットまたは52ビット。
符号付きの数値を表すには、127または1023を追加します。
4、5.0のフロート
101.0
S:0
M:101、1を削除して:01になり、次にすべての0を追加
E:2、127を追加して129、つまり10000001になります
0
1000 0001
0100 0000 0000 0000 0000 000
=》
0100 0000 1010 0000 0000 0000 0000 0000
16進変換:https
://www.osgeo.cn/app/s1653 2は
16:40 a0 00 00になります。これは、ケースとまったく同じです。
5、5.0のダブル
101.0
S:0
M:101、1を削除して:01になり、次にすべての0を追加します
E:2、1023を追加して1025になります。これは10000000001です。
0
10000000001
0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
=》
0100 0000 0001 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
2〜16:
40 14 00 00
00 000000
はケースとまったく同じです。