2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
13
Task/Integer-overflow/Rust/integer-overflow-1.rust
Normal file
13
Task/Integer-overflow/Rust/integer-overflow-1.rust
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
// The following will panic!
|
||||
let i32_1 : i32 = -(-2_147_483_647 - 1);
|
||||
let i32_2 : i32 = 2_000_000_000 + 2_000_000_000;
|
||||
let i32_3 : i32 = -2_147_483_647 - 2_147_483_647;
|
||||
let i32_4 : i32 = 46341 * 46341;
|
||||
let i32_5 : i32 = (-2_147_483_647 - 1) / -1;
|
||||
|
||||
// These will panic! also
|
||||
let i64_1 : i64 = -(-9_223_372_036_854_775_807 - 1);
|
||||
let i64_2 : i64 = 5_000_000_000_000_000_000 + 5_000_000_000_000_000_000;
|
||||
let i64_3 : i64 = -9_223_372_036_854_775_807 - 9_223_372_036_854_775_807;
|
||||
let i64_4 : i64 = 3_037_000_500 * 3_037_000_500;
|
||||
let i64_5 : i64 = (-9_223_372_036_854_775_807 - 1) / -1;
|
||||
21
Task/Integer-overflow/Rust/integer-overflow-2.rust
Normal file
21
Task/Integer-overflow/Rust/integer-overflow-2.rust
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// The following will panic!, but only in release mode
|
||||
let u32_1 : u32 = !4_294_967_295 + 1;
|
||||
let u32_2 : u32 = 3_000_000_000 + 3_000_000_000;
|
||||
let u32_3 : u32 = 2_147_483_647 - 4_294_967_295;
|
||||
let u32_4 : u32 = 65_537 * 65_537;
|
||||
|
||||
// The following panics! in release mode
|
||||
let u64_1 : u64 = !18_446_744_073_709_551_615 + 1;
|
||||
let u64_2 : u64 = 10_000_000_000_000_000_000 + 10_000_000_000_000_000_000;
|
||||
let u64_3 : u64 = 9_223_372_036_854_775_807 - 18_446_744_073_709_551_615;
|
||||
let u64_4 : u64 = 4_294_967_296 * 4_294_967_296;
|
||||
|
||||
println!("{}", u32_1); // 1
|
||||
println!("{}", u32_2); // 1705032704
|
||||
println!("{}", u32_3); // 2147483648
|
||||
println!("{}", u32_4); // 131703
|
||||
|
||||
println!("{}", u64_1); // 1
|
||||
println!("{}", u64_2); // 1553255926290448384
|
||||
println!("{}", u64_3); // 9223372036854775808
|
||||
println!("{}", u64_4); // 0
|
||||
9
Task/Integer-overflow/Rust/integer-overflow-3.rust
Normal file
9
Task/Integer-overflow/Rust/integer-overflow-3.rust
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// The following will never panic!
|
||||
println!("{:?}", 65_537u32.checked_mul(65_537)); // None
|
||||
println!("{:?}", 65_537u32.saturating_mul(65_537)); // 4294967295
|
||||
println!("{:?}", 65_537u32.wrapping_mul(65_537)); // 131073
|
||||
|
||||
// These will never panic! either
|
||||
println!("{:?}", 65_537i32.checked_mul(65_537)); // None
|
||||
println!("{:?}", 65_537i32.saturating_mul(65_537)); // 2147483647
|
||||
println!("{:?}", 65_537i32.wrapping_mul(-65_537)); // -131073
|
||||
Loading…
Add table
Add a link
Reference in a new issue