如何提高一个数的幂?
How to raise a number to a power?
我试图使用插入符运算符 (^
) 将整数乘以幂,但我得到了令人惊讶的结果,例如:
assert_eq!(2^10, 8);
如何在 Rust 中执行取幂?
Rust 通过方法 pow
and checked_pow
提供求幂。后者
防止溢出。因此,要计算 2 的 10 次方,请执行:
let base: i32 = 2; // an explicit type is required
assert_eq!(base.pow(10), 1024);
插入符运算符 ^
不用于求幂,它是 按位异或
运算符.
这是您可以使用的最简单的方法:
let a = 2; // Can also explicitly define type i.e. i32
let a = i32::pow(a, 10);
会输出“2的10次方”,即:
1024
对于整数:
fn main() {
let n = u32::pow(2, 10);
println!("{}", n == 1024);
}
对于花车:
fn main() {
// example 1
let f = f32::powf(2.0, 10.0);
// example 2
let g = f32::powi(2.0, 10);
// print
println!("{}", f == 1024.0 && g == 1024.0);
}
或者,因为你的基数是 2,你也可以使用 shift:
fn main() {
let n = 2 << 9;
println!("{}", n == 1024);
}
我正在尝试与 OP 相同的事情。感谢其他答案作者。
这是一个适合我的变体:
let n = 2u32.pow(10);
这使用 literal unsigned 32 bit integer 设置类型和基数,然后在其上调用 pow()
函数。
位移位是处理这种特殊情况的好方法:
assert_eq!(1 << 10, 1024);
我试图使用插入符运算符 (^
) 将整数乘以幂,但我得到了令人惊讶的结果,例如:
assert_eq!(2^10, 8);
如何在 Rust 中执行取幂?
Rust 通过方法 pow
and checked_pow
提供求幂。后者
防止溢出。因此,要计算 2 的 10 次方,请执行:
let base: i32 = 2; // an explicit type is required
assert_eq!(base.pow(10), 1024);
插入符运算符 ^
不用于求幂,它是 按位异或
运算符.
这是您可以使用的最简单的方法:
let a = 2; // Can also explicitly define type i.e. i32
let a = i32::pow(a, 10);
会输出“2的10次方”,即:
1024
对于整数:
fn main() {
let n = u32::pow(2, 10);
println!("{}", n == 1024);
}
对于花车:
fn main() {
// example 1
let f = f32::powf(2.0, 10.0);
// example 2
let g = f32::powi(2.0, 10);
// print
println!("{}", f == 1024.0 && g == 1024.0);
}
或者,因为你的基数是 2,你也可以使用 shift:
fn main() {
let n = 2 << 9;
println!("{}", n == 1024);
}
我正在尝试与 OP 相同的事情。感谢其他答案作者。
这是一个适合我的变体:
let n = 2u32.pow(10);
这使用 literal unsigned 32 bit integer 设置类型和基数,然后在其上调用 pow()
函数。
位移位是处理这种特殊情况的好方法:
assert_eq!(1 << 10, 1024);