我有一个usize确实达到了非常大的值。我还对它应用了一个增量,我以isize. 在不损失任何精度的情况下应用增量的最佳方法是什么?
fn main() {
let mut big_indexer: usize = 4295032832; // 2^32 + 2^16
let delta: isize = -65792; // 2^16 + 2^8
let big_indexer = (big_indexer as isize) + delta // Can't do this b/c overflow
let big_indexer = big_indexer + (delta as usize) // Can't do this b/c lose negative number
// This is ugly
if delta < 0 {
let big_indexer -= delta.abs() as usize;
} else {
let big_indexer += delta.abs() …Run Code Online (Sandbox Code Playgroud)