How to raise a number to a power?

2019-04-21 06:14发布

I was trying to raise an integer to a power using the caret operator (^), but I am getting surprising results, e.g.:

assert_eq!(2^10, 8);

Searches on DuckDuckGo and Google didn't reveal anything about it.

How can I perform exponentiation in Rust?

1条回答
我欲成王,谁敢阻挡
2楼-- · 2019-04-21 06:39

The caret operator ^ is not used for exponentiation, it's the bitwise XOR operator.

Rust provides exponentiation via methods pow and checked_pow which guards against overflows.

Thus, to raise 2 to the power of 10, do:

let base: i32 = 2; // an explicit type is required
assert_eq!(base.pow(10), 1024);
查看更多
登录 后发表回答