« Premiers pas en OCaml/Types primitifs » : différence entre les versions

Contenu supprimé Contenu ajouté
Watermy (discussion | contributions)
Watermy (discussion | contributions)
+Tableau précision
Ligne 80 :
=== Représentation ===
En OCaml la représentation des entiers dépends de l'architecture de l'ordinateur :
{| class="wikitable"
* Sur une architecture 32 bits les entiers sont représentés sur 31 [[w:Bit|bits]]. Ils sont donc compris dans l'intervalle suivant [-2<sup>30</sup>; 2<sup>30</sup>-1] soit [-1073741824 ; 1073741823].
! Architecture !! [[w:Bit|Bits]] utiles
* Sur une architecture 64 bits les entiers sont représentés sur 63 bits. Soit [-2<sup>62</sup>; 2<sup>62</sup>-1] ou encore [-4611686018427387904; 4611686018427387903].
! colspan="2" | Plage de représentation
|-
| 32 bits || 31 || <math>[-2^{30}, 2^{30}-1]</math> || <math>[-1073741824, 1073741823] </math>
|-
| 64 bits || 63 || <math>[-2^{62}, 2^{62}-1]</math> || <math>[-4611686018427387904, 4611686018427387903] </math>
|}
Vous pouvez vérifier grâce aux fonctions '''min_int''' et '''max_int'''.
<source lang="ocaml">
Ligne 114 ⟶ 120 :
=== Représentation ===
Les réels en OCaml utilisent une double précisions. Ils sont codés sur 64 bits (8 octets) selon le standard [[w:IEEE_754|IEEE754]] et leurs plages de représentations est de <br/>
<math>]-1.79769313486231571.10^{308},1.79769313486231571.10^{308}[ </math>.<br/>
Vous pouvez le vérifier grâce à la fonction '''max_float'''.
<source lang="ocaml">
Ligne 122 ⟶ 128 :
</source>
 
{| style="text-align:center" class="wikitable"
Avec une précision de <math>2.2250738585072014.10^{-308}</math> dans l'intervalle <math>]-1, 1[</math> et une précision de <math>2.22044604925031308.10^{-16}</math> dans l'intervalle <math> ]-1.79769313486231571.10^{308}, -1[ \cup ]1, 1.79769313486231571.10^{308}[ </math>.
! Intervalle !! Précision des réels
|-
| <math>]-1, 1[</math> || <math>2.2250738585072014.10^{-308}</math>
|-
| <math> ]-1.79769313486231571.10^{308}, -1[ </math> ∪ <math>]1, 1.79769313486231571.10^{308}[ </math> || <math>2.22044604925031308.10^{-16}</math>
|}
 
Vous pouvez le vérifier grâce aux fonctions '''min_float''' et '''epsilon_float'''.
 
Ligne 147 ⟶ 160 :
}}
Les seules exceptions à cette règle sont les caractères spéciaux commençant par un antislash '\' dont voici la liste :
{| style="text-align:center" class="wikitable"
! Séquence !! ASCII !! Anglais !! Français
|-