[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

3.1 Entiers basiques

Le champ des valeurs pour un nombre entier dépend de la machine. Le champ minimum est -268435456 à 268435455 (29 bits; c.-à-d., -2**28 à 2**28 - 1), mais quelques machines peuvent définir un autre champ. Beaucoup d'exemples en ce chapitre supposent qu'un nombre entier a 29 bits.

Le lecteur de Lisp lit un nombre entier comme une séquence de chiffres avec le signe initial et le point final facultatifs.

 
 1               ; L'entier 1.
 1.              ; L'entier 1.
+1               ; Encore l'entier 1.
-1               ; L'entier -1.
 536870913       ; Encore l'entier 1, dû au débordement.
 0               ; L'entier 0.
-0               ; L'entier 0.

La syntaxe pour des nombres entiers dans les bases autres que la base 10 utilise ‘#’ suivi d'une lettre qui indique la base: ‘b’ pour binaire, ‘o’ pour octal, ‘x’ pour hex, ou ‘baser’ pour indiquer la base base. Le cas n'est pas significatif pour la lettre qui indique la base. Ainsi, le ‘#binteger’ lit integer en base binaire, et le ‘#baserinteger’ lit integer dans la base base. Les valeurs permises de base vont de 2 à 36. Par exemple:

 
#b101100 ⇒ 44
#o54 ⇒ 44
#x2c ⇒ 44
#24r1k ⇒ 44

Pour comprendre comment les diverses fonctions travaillent sur des nombres entiers, particulièrement au niveau du bit des opérateurs (voir la section Opérations de bits sur les entiers), il est souvent utile de regarder les nombres sous leur forme binaire.

En 29-bit binaire, le nombre entier décimal 5 ressemble à ceci:

 
0 0000  0000 0000  0000 0000  0000 0101

(Nous avons inséré un espace entre les groupes de 4 bits, et deux espaces entre les groupes de 8 bits, pour faciliter la lecture du nombre entier binaire.)

Le nombre entier -1 ressemble à ceci:

 
1 1111  1111 1111  1111 1111  1111 1111

-1 est représenté en tant que 29 unités. (Ceci s'appelle la notation two's complement.)

Le nombre entier négatif, -5, est créé en soustrayant 4 de -1. Dans la base binaire, le nombre entier décimal 4 est 100. En conséquence, -5 ressemble à ceci:

 
1 1111  1111 1111  1111 1111  1111 1011

Dans cette exemple, la plus grande valeur de nombre entier binaire de 29 bits est 268 435 455 en décimale. En binaire, elle ressemble à ceci:

 
0 1111  1111 1111  1111 1111  1111 1111

Puisque les fonctions arithmétiques ne vérifient pas si les nombres entiers ne sont pas à l'extérieur de leur champ, quand vous additionnez 1 à 268 435 455, la valeur est le nombre entier négatif -268 435 456:

 
(+ 1 268435455)
     ⇒ -268435456
     ⇒ 1 0000  0000 0000  0000 0000  0000 0000

Plusieurs des fonctions décrites dans ce chapitre acceptent des marqueurs commes arguments au lieu des nombres. (@xref{Markers}.) Puisque les arguments réels à de telles fonctions peuvent être des nombres ou des marqueurs, nous donnons souvent à ces arguments le nom de number-or-marker. Quand la valeur d'argument est un marqueur, sa valeur de position est employée et son tampon est ignoré.

Variable: most-positive-fixnum

La valeur de cette variable est le plus grand nombre entier que Emacs Lisp peut manipuler.

Variable: most-negative-fixnum

La valeur de cette variable est le plus petit nombre entier que Emacs Lisp peut manipuler. Elle est négative.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.