IKC3 prend en charge toutes les tailles d'entiers C depuis U8
(équivalent à uint8_t
en C) jusqu'à U64
(uint64_t
) pour les
entiers non signés, et de S8
à S64
pour les entiers signés.
En plus de ces 8 types de base, il existe 2 types d'entiers de taille
pointeur : Uw
pour les entiers non signés, et Sw
pour les entiers
signés.
Les petits entiers prennent peu de place, sont statiques, passés par valeur et non par pointeur, ce qui les rend rapides.
Ils n'ont pas besoin d'être nettoyés après usage et peuvent donc être utilisés dans des tableaux comme en C.
ikc3> type(-1)
S8
ikc3> type(-128)
S16
ikc3> type(-32768)
S32
ikc3> type(-2147483648)
S64
ikc3> type(-9223372036854775807)
S64
ikc3> type(0)
U8
ikc3> type(256)
U16
ikc3> type(65536)
U32
ikc3> type(4294967296)
U64
ikc3> type(18446744073709551615)
U64
IKC3 prend en charge les grands entiers, compatibles avec les petits
entiers. Leur type est Integer
et ils peuvent contenir des valeurs
aussi grandes que la mémoire le permet. Ils sont plus lents car alloués
dynamiquement sur le tas (malloc
).
ikc3> type(1000000000000000000000000000000)
Integer
~
Négation binaire.
ikc3> ~ 1
254
ikc3> ~ -1
0
ikc3> ~ 0
255
ikc3> ~ 255
0
ikc3> ~ (U16) 1
65534
ikc3> ~ (S16) 1
-2
+
Addition entière.
Tous les entiers positifs peuvent être définis en termes d’addition de zéro ou d’un entier positif, et un. Par exemple :
1 = 0 + 1
2 = 0 + 1 + 1
3 = 0 + 1 + 1 + 1
etc.
-
Soustraction entière. Retire un entier d’un autre entier.
*
Multiplication entière. Initialise le résultat à zéro, ajoute un entier
a
et répète cela b
fois.
/
Division entière. Inverse de la multiplication : pour tous entiers a
et b
, il existe un couple q
et r
tel que a = b * q + r
.
La division retourne q
.
mod
Modulo entier. Retourne r
dans l’équation précédente (voir /
).
<<
Décalage à gauche.
ikc3> type(1)
U8
ikc3> type(1000000000000000000000000000000)
Integer
ikc3> a = 1 + 100000000000000000000000000000000
100000000000000000000000000000001
ikc3> a * a
10000000000000000000000000000000200000000000000000000000000000001
ikc3> a * a / 1000000000000000000000000000000000000000000000000000
10000000000000
Top : Documentation KC3
Précédent : 1.13 Identifiant
Suivant : 1.15 Liste