キャレット演算子を使用して整数を累乗しようとしました(^
)、しかし、私は驚くべき結果を得ています、例えば:
assert_eq!(2^10, 8);
DuckDuckGoとGoogleでの検索では、それについて何も明らかにされませんでした。
Rustで累乗を実行するにはどうすればよいですか?
キャレット演算子^
は累乗には使用されず、 ビット単位XOR演算子 です。
Rustは、メソッド pow
および checked_pow
オーバーフローを防ぎます。
したがって、2を10のべき乗にするには、次のようにします。
let base: i32 = 2; // an explicit type is required
assert_eq!(base.pow(10), 1024);