undefined
Flyte og dobbelt desimalverdier . They both store floating point numbers but they differ in the level of precision to which they can store the values.
Flyte
Syntaks
float var_name ;
- Størrelsen på flottøren er 4 byte.
- 3,4 x 10 -38 til 3,4 x 10 38 .
- Den kan lagre verdier opp til uten tap av presisjon.
- Formatspesifikasjonen for float er
Eksempel
C
// C Program to illustrate float> #include> > int> main()> {> > // Syntax of declaring and initializing> > // the float variable> > float> myVariable = 789.123456f;> > > // printing floating point number> > printf> (> 'Float value is %f'> , myVariable);> > return> 0;> }> |
Produksjon
Float value is 789.123474
Merk: All the real number literals are of double type by default. Vi kan legge til en f
Dobbelt
- Størrelsen på dobbelen er
- -308 til 1,7×10 .
- Den kan lagre verdier opp til uten tap av presisjon.
- Formatspesifikasjonen for dobbel er %lf
Eksempel
C
#include> > int> main()> {> > // Syntax of declaring and initializing> > // the double variable> > double> myVariable = 789.123456;> > printf> (> 'Double value is %lf'> , myVariable);> > //%lf or %f both can be used to> > // print Float values> > return> 0;> }> |
Produksjon
Double value is 789.123456
Hvordan lagres float og double?
C-språket følger IEEE 754 standard
C float Memory Representation
Størrelsen på flottøren er 32-bit, hvorav:
- skilt av nummeret.
- Den neste 8 biter eksponent.
- Det gjenværende 23 biter
Eksempel
Converting to Binary form, we get: 65 = 1000001 0.125 = 001 So, 65.125 = 1000001.001 = 1.000001001 x 106 Normalized Mantissa = 000001001 Now, according to the standard, we will get the baised exponent by adding the exponent to 127, = 127 + 6 = 133 Baised exponent = 10000101 And the signed bit is 0 (positive) So, the IEEE 754 representation of 65.125 is, 0 10000101 00000100100000000000000
C dobbel minnerepresentasjon
Størrelsen på flottøren er 32-bit, hvorav:
- skilt
- Den neste eksponent.
- Det gjenværende
Eksempel
From above, 65.5 = 1.000001001 x 106 Normalized Mantissa = 000001001 Now, according to the standard, bais is 1023. So, = 1023 + 6 = 1029 Baised exponent = 10000000101 And the signed bit is 0 (positive) So, the IEEE 754 representation of 65.125 is, 0 10000000101 0000010010000000000000000000000000000000000000000000
Poeng | Flyte | Dobbelt |
|---|---|---|
| Presisjon | ||
| Minnebruk | Double bruker 64 bit eller 8 byte minne. | |
| Område | -38 . | Rekkevidden for dobbel er 1,7×10 . |
| %f er formatspesifikasjonen for float. | er formatspesifikasjonen for dobbel. | |
| | Tegn = 1 bit |
Konklusjon