web-dev-qa-db-ja.com

数値を累乗する方法は?

キャレット演算子を使用して整数を累乗しようとしました(^)、しかし、私は驚くべき結果を得ています、例えば:

assert_eq!(2^10, 8);

DuckDuckGoとGoogleでの検索では、それについて何も明らかにされませんでした。

Rustで累乗を実行するにはどうすればよいですか?

14
Matthias Braun

キャレット演算子^は累乗には使用されず、 ビット単位XOR演算子 です。

Rustは、メソッド pow および checked_pow オーバーフローを防ぎます。

したがって、2を10のべき乗にするには、次のようにします。

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