Struct numext_fixed_uint_core::U160 [−][src]
Fixed non-negative integer type.
Implementations
impl U160
[src]
impl U160
[src]pub const fn zero() -> Self
[src]
Create a new fixed uint and value is zero.
pub const fn one() -> Self
[src]
Create a new fixed uint and value is one.
pub fn is_zero(&self) -> bool
[src]
Test if a fixed uint is zero.
pub fn is_max(&self) -> bool
[src]
Test if a fixed uint is the max value.
pub const fn count_bits() -> u64
[src]
Return the count of bits.
pub fn bit(&self, index: usize) -> Option<bool>
[src]
Return a specific bit, or return None when overlows.
pub fn set_bit(&mut self, index: usize, value: bool) -> bool
[src]
Set a specific bit. Return false when overflows.
pub fn highest_one(&self) -> Option<usize>
[src]
Return the highest bit which is one.
pub fn lowest_one(&self) -> Option<usize>
[src]
Return the lowest bit which is one.
pub const fn count_bytes() -> u64
[src]
Return the count of bytes.
pub fn byte(&self, index: usize) -> Option<u8>
[src]
Return a specific byte, or return None when overlows.
pub fn set_byte(&mut self, index: usize, byte: u8) -> bool
[src]
Set a specific byte. Return false when overflows;
pub fn highest_nonzero_byte(&self) -> Option<usize>
[src]
Return the highest byte which is nonzero.
pub fn lowest_nonzero_byte(&self) -> Option<usize>
[src]
Return the lowest byte which is nonzero.
pub fn complete_mul(&self, other: &Self) -> (Self, Self)
[src]
Calculates the multiplication of self
and other
.
Returns a tuple: (low, high)
,
low
is the low part of the multiplication,
high
is the low part of the multiplication.
The multiplication is equal to (high << Self::count_bits()) + low
.
pub fn complete_div(&self, other: &Self) -> (Self, Self)
[src]
Calculates both the quotient and the remainder when self
is divided by other
.
Returns a tuple: (quotient, remainder)
.
The self
is equal to quotient * other + remainder
.
pub const fn size_of() -> usize
[src]
Return the size used by this type in bytes, actually.
This size is greater than or equal to the bytes of this fixed type.
pub fn gcd(&self, other: &Self) -> Self
[src]
Calculates the Greatest Common Divisor (GCD).
pub fn from_little_endian(input: &[u8]) -> Result<Self, FixedUintError>
[src]
Convert from little-endian slice.
pub fn from_big_endian(input: &[u8]) -> Result<Self, FixedUintError>
[src]
Convert from big-endian slice.
pub fn into_little_endian(
&self,
output: &mut [u8]
) -> Result<(), FixedUintError>
[src]
&self,
output: &mut [u8]
) -> Result<(), FixedUintError>
Convert into little-endian slice.
pub fn into_big_endian(&self, output: &mut [u8]) -> Result<(), FixedUintError>
[src]
Convert into big-endian slice.
pub fn from_bin_str(input: &str) -> Result<Self, FixedUintError>
[src]
Convert from a binary string.
pub fn from_oct_str(input: &str) -> Result<Self, FixedUintError>
[src]
Convert from a octal string.
pub fn from_hex_str(input: &str) -> Result<Self, FixedUintError>
[src]
Convert from a hexadecimal string.
pub fn from_dec_str(input: &str) -> Result<Self, FixedUintError>
[src]
Convert from a decimal string.
pub const fn min_value() -> Self
[src]
Returns the smallest value that can be represented by this integer type.
pub const fn max_value() -> Self
[src]
Returns the largest value that can be represented by this integer type.
pub fn count_ones(&self) -> u32
[src]
Returns the number of ones in the binary representation of self.
pub fn count_zeros(&self) -> u32
[src]
Returns the number of zeros in the binary representation of self.
pub fn leading_zeros(&self) -> u32
[src]
Returns the number of leading zeros in the binary representation of self.
pub fn trailing_zeros(&self) -> u32
[src]
Returns the number of trailing zeros in the binary representation of self.
pub fn rotate_left(&self, n: u32) -> Self
[src]
Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.
Please note this isn’t the same operation as <<
!
pub fn rotate_right(&self, n: u32) -> Self
[src]
Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.
Please note this isn’t the same operation as >>
!
pub fn swap_bytes(self) -> Self
[src]
Reverses the byte order of the integer.
pub fn to_be_bytes(&self) -> [u8; 20]
[src]
Return the memory representation of this integer as a byte array in big-endian (network) byte order.
pub fn to_le_bytes(&self) -> [u8; 20]
[src]
Return the memory representation of this integer as a byte array in little-endian byte order.
pub fn to_ne_bytes(&self) -> [u8; 20]
[src]
Return the memory representation of this integer as a byte array in native byte order.
As the target platform’s native endianness is used, portable code should use to_be_bytes or to_le_bytes, as appropriate, instead.
pub fn from_be_bytes(bytes: &[u8; 20]) -> Self
[src]
Create an integer value from its representation as a byte array in big endian.
pub fn from_le_bytes(bytes: &[u8; 20]) -> Self
[src]
Create an integer value from its representation as a byte array in little endian.
pub fn from_ne_bytes(bytes: &[u8; 20]) -> Self
[src]
Create an integer value from its memory representation as a byte array in native endianness.
As the target platform’s native endianness is used, portable code likely wants to use from_be_bytes or from_le_bytes, as appropriate instead.
pub fn pow(&self, exp: u32) -> Self
[src]
Raises self to the power of exp
, using exponentiation by squaring.
pub fn is_power_of_two(&self) -> bool
[src]
Returns true
if and only if self == 2^k
for some k
.
pub fn next_power_of_two(&self) -> Self
[src]
Returns the smallest power of two greater than or equal to self
.
When return value overflows (i.e., self > (1 << (N-1))
for type uN
), it panics
in debug mode and return value is wrapped to 0 in release mode (the only situation
in which method can return 0).
pub fn checked_add(&self, rhs: &Self) -> Option<Self>
[src]
Checked integer addition. Computes self + rhs
,
returning None
if overflow occurred.
pub fn checked_sub(&self, rhs: &Self) -> Option<Self>
[src]
Checked integer subtraction. Computes self - rhs
,
returning None
if overflow occurred.
pub fn checked_mul(&self, rhs: &Self) -> Option<Self>
[src]
Checked integer multiplication. Computes self * rhs
,
returning None
if overflow occurred.
pub fn checked_div(&self, rhs: &Self) -> Option<Self>
[src]
Checked integer division. Computes self / rhs
, returning None
if rhs == 0
.
pub fn checked_rem(&self, rhs: &Self) -> Option<Self>
[src]
Checked integer remainder. Computes self % rhs
, returning None
if rhs == 0
.
pub fn checked_next_power_of_two(&self) -> Option<Self>
[src]
Returns the smallest power of two greater than or equal to n
.
If the next power of two is greater than the type’s maximum value, None is returned,
otherwise the power of two is wrapped in Some
.
pub fn checked_pow(&self, exp: u32) -> Option<Self>
[src]
Checked exponentiation.
Computes self.pow(exp)
, returning None
if overflow occurred.
pub fn checked_shl(&self, rhs: u128) -> Option<Self>
[src]
Checked shift left. Computes self << rhs
,
returning None
if rhs
is larger than or equal to the number of bits in self
.
pub fn checked_shr(&self, rhs: u128) -> Option<Self>
[src]
Checked shift right. Computes self >> rhs
,
returning None
if rhs
is larger than or equal to the number of bits in self
.
pub fn checked_neg(&self) -> Option<Self>
[src]
Checked negation. Computes -self
, returning None
unless self == 0
.
Note that negating any positive integer will overflow.
pub fn saturating_add(&self, rhs: &Self) -> Self
[src]
Saturating integer addition. Computes self + rhs
,
saturating at the numeric bounds instead of overflowing.
pub fn saturating_sub(&self, rhs: &Self) -> Self
[src]
Checked integer subtraction. Computes self - rhs
,
returning None
if overflow occurred.
pub fn saturating_mul(&self, rhs: &Self) -> Self
[src]
Checked integer multiplication. Computes self * rhs
,
returning None
if overflow occurred.
pub fn saturating_pow(&self, exp: u32) -> Self
[src]
Saturating integer exponentiation.
Computes self.pow(exp)
, saturating at the numeric bounds instead of overflowing.
pub fn overflowing_add(&self, rhs: &Self) -> (Self, bool)
[src]
Calculates self + rhs
.
Returns a tuple of the addition along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
pub fn overflowing_sub(&self, rhs: &Self) -> (Self, bool)
[src]
Calculates self - rhs
.
Returns a tuple of the subtraction along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
pub fn overflowing_mul(&self, rhs: &Self) -> (Self, bool)
[src]
Calculates the multiplication of self
and rhs
.
Returns a tuple of the multiplication along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
pub fn overflowing_div(&self, rhs: &Self) -> (Self, bool)
[src]
Calculates the divisor when self
is divided by rhs
.
Returns a tuple of the divisor along with a boolean indicating
whether an arithmetic overflow would occur.
Note that for unsigned integers overflow never occurs,
so the second value is always false
.
Panics
This function will panic if rhs
is 0
.
pub fn overflowing_rem(&self, rhs: &Self) -> (Self, bool)
[src]
Calculates the remainder when self
is divided by rhs
.
Returns a tuple of the remainder after dividing along with a boolean indicating
whether an arithmetic overflow would occur.
Note that for unsigned integers overflow never occurs,
so the second value is always false
.
Panics
This function will panic if rhs
is 0
.
pub fn overflowing_pow(&self, exp: u32) -> (Self, bool)
[src]
Raises self to the power of exp
, using exponentiation by squaring.
Returns a tuple of the exponentiation along with a bool indicating whether an
overflow happened.
pub fn overflowing_shl(&self, rhs: u128) -> (Self, bool)
[src]
Shifts self
left by rhs
bits.
Returns a tuple of the shifted version of self
along with a boolean indicating
whether the shift value was larger than or equal to the number of bits.
If the shift value is too large, then value is masked (N-1) where N is the number
of bits, and this value is then used to perform the shift.
pub fn overflowing_shr(&self, rhs: u128) -> (Self, bool)
[src]
Shifts self
right by rhs
bits.
Returns a tuple of the shifted version of self
along with a boolean indicating
whether the shift value was larger than or equal to the number of bits.
If the shift value is too large, then value is masked (N-1) where N is the number
of bits, and this value is then used to perform the shift.
pub fn overflowing_neg(&self) -> (Self, bool)
[src]
Negates self
in an overflowing fashion.
Returns !self + 1
using wrapping operations to return the value that represents
the negation of this unsigned value.
Note that for positive unsigned values overflow always occurs,
but negating 0
does not overflow.
Trait Implementations
impl<Rhs> AddAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> AddAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn add_assign(&mut self, other: Rhs)
[src]
impl<'a> BitAndAssign<&'a U160> for U160
[src]
impl<'a> BitAndAssign<&'a U160> for U160
[src]fn bitand_assign(&mut self, other: &U160)
[src]
impl<Rhs> BitAndAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> BitAndAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn bitand_assign(&mut self, other: Rhs)
[src]
impl<'a> BitOrAssign<&'a U160> for U160
[src]
impl<'a> BitOrAssign<&'a U160> for U160
[src]fn bitor_assign(&mut self, other: &U160)
[src]
impl<Rhs> BitOrAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> BitOrAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn bitor_assign(&mut self, other: Rhs)
[src]
impl<'a> BitXorAssign<&'a U160> for U160
[src]
impl<'a> BitXorAssign<&'a U160> for U160
[src]fn bitxor_assign(&mut self, other: &U160)
[src]
impl<Rhs> BitXorAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> BitXorAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn bitxor_assign(&mut self, other: Rhs)
[src]
impl<Rhs> DivAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> DivAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn div_assign(&mut self, other: Rhs)
[src]
impl<Rhs> MulAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> MulAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn mul_assign(&mut self, other: Rhs)
[src]
impl PartialOrd<U160> for U160
[src]
impl PartialOrd<U160> for U160
[src]impl<Rhs> RemAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> RemAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn rem_assign(&mut self, other: Rhs)
[src]
impl<Rhs> SubAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]
impl<Rhs> SubAssign<Rhs> for U160 where
Rhs: Into<U160>,
[src]fn sub_assign(&mut self, other: Rhs)
[src]
impl UintConvert<U1024> for U160
[src]
impl UintConvert<U1024> for U160
[src]impl UintConvert<U128> for U160
[src]
impl UintConvert<U128> for U160
[src]impl UintConvert<U160> for U128
[src]
impl UintConvert<U160> for U128
[src]impl UintConvert<U160> for U224
[src]
impl UintConvert<U160> for U224
[src]impl UintConvert<U160> for U256
[src]
impl UintConvert<U160> for U256
[src]impl UintConvert<U160> for U384
[src]
impl UintConvert<U160> for U384
[src]impl UintConvert<U160> for U512
[src]
impl UintConvert<U160> for U512
[src]impl UintConvert<U160> for U520
[src]
impl UintConvert<U160> for U520
[src]impl UintConvert<U160> for U1024
[src]
impl UintConvert<U160> for U1024
[src]impl UintConvert<U160> for U2048
[src]
impl UintConvert<U160> for U2048
[src]impl UintConvert<U160> for U4096
[src]
impl UintConvert<U160> for U4096
[src]impl UintConvert<U2048> for U160
[src]
impl UintConvert<U2048> for U160
[src]impl UintConvert<U224> for U160
[src]
impl UintConvert<U224> for U160
[src]impl UintConvert<U256> for U160
[src]
impl UintConvert<U256> for U160
[src]impl UintConvert<U384> for U160
[src]
impl UintConvert<U384> for U160
[src]impl UintConvert<U4096> for U160
[src]
impl UintConvert<U4096> for U160
[src]impl UintConvert<U512> for U160
[src]
impl UintConvert<U512> for U160
[src]impl UintConvert<U520> for U160
[src]
impl UintConvert<U520> for U160
[src]