Function tune::math::i32_rem_u [−][src]
pub fn i32_rem_u<D: U32Denom>(numer: i32, denom: D) -> D
Returns the euclidean remainder of a signed numer
and an unsigned denom
.
The result is an unsigned integer between 0
and denom-1
.
The function returns valid results for every (numer, denom)
pair where denom != 0
.
Panics
Panics if denom == 0
.
Examples
assert_eq!(math::i32_rem_u(0, 5u32), 0); assert_eq!(math::i32_rem_u(1, 5u32), 1); assert_eq!(math::i32_rem_u(4, 5u32), 4); assert_eq!(math::i32_rem_u(5, 5u32), 0); assert_eq!(math::i32_rem_u(6, 5u32), 1); // When numer is negative assert_eq!(math::i32_rem_u(-1, 5u32), 4); assert_eq!(math::i32_rem_u(-4, 5u32), 1); assert_eq!(math::i32_rem_u(-5, 5u32), 0); assert_eq!(math::i32_rem_u(-6, 5u32), 4); // Integer limits assert_eq!(math::i32_rem_u(i32::MIN, u32::MAX), i32::MAX as u32); assert_eq!(math::i32_rem_u(-1, u32::MAX), u32::MAX - 1); assert_eq!(math::i32_rem_u(1, u32::MAX), 1); assert_eq!(math::i32_rem_u(i32::MAX, u32::MAX), i32::MAX as u32);