Les nombres
1. Les différentes classes
Comme nous l’avons vu précédemment, tous les nombres sont représentés par des objets. Observons les classes employées :
a=10
puts a.class
a=10.0
puts a.class
Nous obtenons pour notre entier Fixnum et pour notre décimal Float.
Regardons maintenant la classe pour un nombre de grande taille en utilisant l’opérateur de puissance **.
a=10
puts ( a**100 ).class
Nous obtenons maintenant une classe Bignum. Pour les décimaux, il n’y a pas de changement de classe, mais la valeur deviendra infini (Infinity).
Voici quelques représentations de nombre :
-10
3.14
10e15
0xFF
# Forme hexadécimale
-0b101
# Forme binaire
?a
# Numéro de caractère
2. Fixnum
a. Opérateurs
Cette classe a pour parent Integer (elle-même ayant pour parent Numeric).
Voici la liste des opérateurs :
-
+ : Addition
-
- : Soustraction
-
* : Multiplication
-
/ : Division
-
% : Modulo
-
** : Puissance
Des opérations binaires sont également disponibles par ces opérateurs :
-
~ : Inversion de bits
-
| : Ou binaire
-
& : Et binaire|
-
^ : Ou exclusif binaire (xor)
-
<< : Décalage à gauche
-
>> : Décalage à droite
L’opérateur <=> sert à comparer deux entiers avec en retour -1, 0 ou +1 selon le résultat de la comparaison.
Exemple :
puts 1 <=> 2
puts 2 <=> 1
puts 1 <=> 1
Nous obtenons en sortie :
-1
1
0
b. Représentation interne
L’instruction...