web-dev-qa-db-fra.com

Comment élever un nombre à une puissance?

J'essayais d'élever un entier à une puissance en utilisant l'opérateur caret (^), mais j'obtiens des résultats surprenants, par exemple:

assert_eq!(2^10, 8);

Les recherches sur DuckDuckGo et Google n'ont rien révélé à ce sujet.

Comment puis-je effectuer une exponentiation dans Rust?

14
Matthias Braun

L'opérateur caret ^ n'est pas utilisé pour l'exponentiation, c'est au niveau du bit XOR .

Rust fournit l'exponentiation via les méthodes pow et checked_pow qui protège contre les débordements.

Ainsi, pour élever 2 à la puissance de 10, faites:

let base: i32 = 2; // an explicit type is required
assert_eq!(base.pow(10), 1024);
12
Matthias Braun