undefined

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
minnerepresentasjon av float

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
minnerepresentasjon av dobbel

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