Programmeren in C/Datatypes: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Nijdam (overleg | bijdragen)
Nijdam (overleg | bijdragen)
Regel 181:
En "''Hey, Presto!''". De code werkt zoals het de bedoeling is omdat we nu rekening houden met de inherente fout die het gebruik van floating-point getallen oplevert. Met behulp van "''fabs(x*3 - 1.0) < EPSILON''" wordt het absolute verschil uitgerekend en als dit kleiner is dan een voorgedefinieerd maximum ('''EPSILON''') zijn de twee waarden "gelijk" of in ieder geval "nagenoeg gelijk". In de wandeling staat deze techniek ook wel bekend als "''close-enough comparison''". Een goede waarde voor EPSILON hangt af van de toepassing en de implementatie van de compiler (dus "''[[:w:RTFM|RTFM]]''", nogmaals).
 
==Representatie==
==Vormen van getallen==
Vormen van getallen zijn:
:*int <BR>
:*double <BR>
:*long <BR>
:*float <BR>
:*short <BR>
:*char <BR>
<BR>
 
Hierbij bevatten long, int en short gehele getallen, waarvoor geldt dat long groter of gelijk aan (in aantal bits) een int is en waarbij een int groter dan of gelijk aan een short is. Hoe deze vertaling juist gebeurt hangt sterk af van het onderliggende platform. Een 32 bit Linux heeft bijvoorbeeld 32 bit voor een int terwijl dit onder DOS wel 16 bit is. Een ''char'' is typisch nog kleiner en heeft de grootte van 1 byte. De bedoeling van een char is een ascii-teken te kunnen bevatten.
 
Een float en een double kunnen reële getallen bevatten waarbij een double een groter bereik en precisie heeft dan een float.
 
Alle types getallen hebben een ''signed'' en een ''unsigned'' variant. Dit sleutelwoord wordt voor de variabele geplaatst. Bijvoorbeeld:
{{code
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.