平时编码中经常遇到求根函数,比如1024占多少bit,即求 值为多少?为此编写一个小程序,方便使用,语言为Rust,仅供参考:
fn rooting(base: f64, num: f64) -> f64 {
let mut quotient = num / base;
let mut ret = 0.0;
while quotient > 1.0 {
ret += 1.0;
quotient = quotient / base;
}
ret + quotient
}
fn main() {
let base = 2.0;
for i in 0..64 {
println!("base {} num {} log {}", base, i, rooting(base, i as f64));
}
}
测试 base=2,num为[0, 64]计算结果:
base 2 num 0 log 0
base 2 num 1 log 0.5
base 2 num 2 log 1
base 2 num 3 log 1.75
base 2 num 4 log 2
base 2 num 5 log 2.625
base 2 num 6 log 2.75
base 2 num 7 log 2.875
base 2 num 8 log 3
base 2 num 9 log 3.5625
base 2 num 10 log 3.625
base 2 num 11 log 3.6875
base 2 num 12 log 3.75
base 2 num 13 log 3.8125
base 2 num 14 log 3.875
base 2 num 15 log 3.9375
base 2 num 16 log 4
base 2 num 17 log 4.53125
base 2 num 18 log 4.5625
base 2 num 19 log 4.59375
base 2 num 20 log 4.625
base 2 num 21 log 4.65625
base 2 num 22 log 4.6875
base 2 num 23 log 4.71875
base 2 num 24 log 4.75
base 2 num 25 log 4.78125
base 2 num 26 log 4.8125
base 2 num 27 log 4.84375
base 2 num 28 log 4.875
base 2 num 29 log 4.90625
base 2 num 30 log 4.9375
base 2 num 31 log 4.96875
base 2 num 32 log 5
base 2 num 33 log 5.515625
base 2 num 34 log 5.53125
base 2 num 35 log 5.546875
base 2 num 36 log 5.5625
base 2 num 37 log 5.578125
base 2 num 38 log 5.59375
base 2 num 39 log 5.609375
base 2 num 40 log 5.625
base 2 num 41 log 5.640625
base 2 num 42 log 5.65625
base 2 num 43 log 5.671875
base 2 num 44 log 5.6875
base 2 num 45 log 5.703125
base 2 num 46 log 5.71875
base 2 num 47 log 5.734375
base 2 num 48 log 5.75
base 2 num 49 log 5.765625
base 2 num 50 log 5.78125
base 2 num 51 log 5.796875
base 2 num 52 log 5.8125
base 2 num 53 log 5.828125
base 2 num 54 log 5.84375
base 2 num 55 log 5.859375
base 2 num 56 log 5.875
base 2 num 57 log 5.890625
base 2 num 58 log 5.90625
base 2 num 59 log 5.921875
base 2 num 60 log 5.9375
base 2 num 61 log 5.953125
base 2 num 62 log 5.96875
base 2 num 63 log 5.984375