Converts from a u8.
if Self==i8 it saturates at 0..=127 .
use core_extensions::IntegerExt;
assert_eq!(u8::from_u8(0),0);
assert_eq!(u8::from_u8(255),255);
assert_eq!(i8::from_u8(0),0);
assert_eq!(i8::from_u8(255),127);
assert_eq!(u16::from_u8(0),0);
assert_eq!(u16::from_u8(255),255);
assert_eq!(i16::from_u8(0),0);
assert_eq!(i16::from_u8(255),255);
assert_eq!(u32::from_u8(0),0);
assert_eq!(u32::from_u8(255),255);
assert_eq!(i32::from_u8(0),0);
assert_eq!(i32::from_u8(255),255);
Converts from a i8.
if n < 0 and Self is Unsigned it returns 0.
use core_extensions::IntegerExt;
assert_eq!(u8::from_i8(-128),0);
assert_eq!(u8::from_i8(0 ),0);
assert_eq!(u8::from_i8(1 ),1);
assert_eq!(u8::from_i8(127 ),127);
assert_eq!(i8::from_i8(-128),-128);
assert_eq!(i8::from_i8(0 ),0 );
assert_eq!(i8::from_i8(127 ),127 );
assert_eq!(u16::from_i8(-128),0);
assert_eq!(u16::from_i8(0 ),0);
assert_eq!(u16::from_i8(1 ),1);
assert_eq!(u16::from_i8(127 ),127);
assert_eq!(i16::from_i8(-128),-128);
assert_eq!(i16::from_i8(0 ),0 );
assert_eq!(i16::from_i8(127 ),127 );
assert_eq!(u32::from_i8(-128),0);
assert_eq!(u32::from_i8(0 ),0);
assert_eq!(u32::from_i8(1 ),1);
assert_eq!(u32::from_i8(127 ),127);
assert_eq!(i32::from_i8(-128),-128);
assert_eq!(i32::from_i8(0 ),0 );
assert_eq!(i32::from_i8(127 ),127 );
fn power(self, n: u32) -> Self
Raises self
to the n
th power.
This has the same panicking behavior as u32::pow().
Like the Self::abs function except that the return type is Self::Unsigned
.
use core_extensions::integer_extensions::{IntegerExt,Sign};
assert_eq!(0u8.abs_unsigned(),0);
assert_eq!(0i8.abs_unsigned(),0);
assert_eq!(127i8.abs_unsigned(),127);
assert_eq!((-1i8).abs_unsigned(),1);
assert_eq!((-16i8).abs_unsigned(),16);
assert_eq!((-128i8).abs_unsigned(),128);
Returns the number of decimal digits of self
.
Negative numbers add 1 digit because of '-'.
use core_extensions::integer_extensions::{IntegerExt,Sign};
assert_eq!(100.number_of_digits(),3);
assert_eq!(10.number_of_digits(),2);
assert_eq!(1.number_of_digits(),1);
assert_eq!(0.number_of_digits(),1);
assert_eq!((-1).number_of_digits(),2);
assert_eq!((-100).number_of_digits(),4);
Gets the sign of self
which is either Positive
or Negative
.
use core_extensions::integer_extensions::{IntegerExt,Sign};
assert_eq!(0u8.get_sign(),Sign::Positive);
assert_eq!(0i8.get_sign(),Sign::Positive);
assert_eq!(127i8.get_sign(),Sign::Positive);
assert_eq!((-1i8).get_sign(),Sign::Negative);
assert_eq!((-128i8).get_sign(),Sign::Negative);
fn div_safe(self, other: Self) -> Self
Non-panicking division which returns self if other==0.
use core_extensions::integer_extensions::{IntegerExt,Sign};
assert_eq!(60.div_safe(12),5);
assert_eq!(60.div_safe(30),2);
assert_eq!(60.div_safe(31),1);
assert_eq!(60.div_safe(0) ,60);
assert_eq!(13.div_safe(0) ,13);