小编Rip*_*ead的帖子

如何从usize中减去isize?

我有一个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)

primitive types type-conversion rust

7
推荐指数
2
解决办法
1762
查看次数

标签 统计

primitive ×1

rust ×1

type-conversion ×1

types ×1