How to check if integer addition will overflow in Rust

1 Answer

0 votes
fn adding_will_overflow(x: i64, y: i64) -> bool {
    (x > 0 && y > i64::MAX - x) || (x < 0 && y < i64::MIN - x)
}

// i64::MAX = 9223372036854775807

fn main() {
    let x: i64 = 39839299;
    let y: i64 = 1472783642;
    println!("{}", if adding_will_overflow(x, y) { "true" } else { "false" });

    let x: i64 = 9223372036854775807;
    let y: i64 = 1;
    println!("{}", if adding_will_overflow(x, y) { "true" } else { "false" });
}


 
/*
run:
 
false
true
 
*/

 



answered May 17, 2025 by avibootz

Related questions

...