我正在尝试使用位移,但我需要将结果作为f64。我似乎无法弄清楚如何在不使tmp变丑的情况下将结果转换为f64。
let num_bits: uint = 32; // just for reference
// how can these two lines be 1 line
let muli: int = 1<<(num_bits-2);
let mul: f64 = muli as f64;
如何将最后两行写成一行,这样我就不需要了muli
?
我已经尝试了以下主题的各种尝试:
let m: f64 = 1<<(num_bits-2) as f64;
这给婴儿围栏
<anon>:8:21: 8:40 error: mismatched types: expected `uint`, found `f64` (expected uint, found f64)
<anon>:8 let m: f64 = 1<<(num_bits-2) as f64;
您可以通过注释1
文字的类型来做到这一点。自您说过以来,我假设您希望移位结果为int
(转换为之前f64
)multi: int
。否则,您想要1u
。
let m: f64 = (1i << (num_bits - 2)) as f64;
检查围栏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句