pub trait BitConvertible {
// Required methods
fn to_bits_asc(&self) -> Vec<bool>;
fn to_bits_desc(&self) -> Vec<bool>;
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> Self;
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> Self;
}
Expand description
Defines functions that express a number as a Vec
of bits or construct a number from an
iterator of bits.
Required Methods§
Sourcefn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
Sourcefn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
Sourcefn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> Self
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> Self
Converts an iterator of bits into a number. The input bits are in ascending order: least- to most-significant.
Sourcefn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> Self
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> Self
Converts an iterator of bits into a value. The input bits are in descending order: most- to least-significant.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl BitConvertible for i8
impl BitConvertible for i8
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i8
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i8
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i8
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i8
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for i16
impl BitConvertible for i16
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i16
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i16
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i16
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i16
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for i32
impl BitConvertible for i32
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i32
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i32
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i32
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i32
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for i64
impl BitConvertible for i64
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i64
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i64
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i64
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i64
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for i128
impl BitConvertible for i128
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i128
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> i128
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i128
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> i128
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for isize
impl BitConvertible for isize
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, the last bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, the first bit is the sign bit:
false
if the number is non-negative and true
if it is negative.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> isize
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> isize
Converts an iterator of bits into a value. The bits should be in ascending order (least- to most-significant).
The bits are interpreted as in twos-complement, and the last bit is the sign bit; if
it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
Let $k$ be bits.count()
. If $k = 0$ or $b_{k-1}$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_{k-1}$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^i [b_i] \right ) - 2^k.
$$
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that doesn’t fit in the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> isize
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> isize
Converts an iterator of bits into a value. The bits should be in descending order (most- to least-significant).
The bits are interpreted as in twos-complement, and the first bit is the sign bit;
if it is false
, the number is non-negative, and if it is true
, the number is
negative.
The function panics if the input represents a number that can’t fit in the output type.
If bits
is empty or $b_0$ is false
, then
$$
f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i],
$$
where braces denote the Iverson bracket, which converts a bit to 0 or 1.
If $b_0$ is true
, then
$$
f((b_i)_ {i=0}^{k-1}) = \left ( \sum_{i=0}^{k-1}2^{k-i-1} [b_i] \right ) - 2^k.
$$
§Examples
See here.
Source§impl BitConvertible for u8
impl BitConvertible for u8
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u8
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u8
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u8
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u8
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§impl BitConvertible for u16
impl BitConvertible for u16
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u16
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u16
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u16
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u16
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§impl BitConvertible for u32
impl BitConvertible for u32
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u32
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u32
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u32
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u32
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§impl BitConvertible for u64
impl BitConvertible for u64
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u64
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u64
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u64
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u64
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§impl BitConvertible for u128
impl BitConvertible for u128
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u128
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> u128
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u128
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> u128
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§impl BitConvertible for usize
impl BitConvertible for usize
Source§fn to_bits_asc(&self) -> Vec<bool>
fn to_bits_asc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in ascending order: least- to
most-significant.
If the number is 0, the Vec
is empty; otherwise, it ends with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn to_bits_desc(&self) -> Vec<bool>
fn to_bits_desc(&self) -> Vec<bool>
Returns a Vec
containing the bits of a number in descending order: most- to
least-significant.
If the number is 0, the Vec
is empty; otherwise, it begins with true
.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(n)$
where $T$ is time, $M$ is additional memory, and $n$ is self.significant_bits()
.
§Examples
See here.
Source§fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> usize
fn from_bits_asc<I: Iterator<Item = bool>>(bits: I) -> usize
Converts an iterator of bits into a number. The bits should be in ascending order (least- to most-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^i [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.
Source§fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> usize
fn from_bits_desc<I: Iterator<Item = bool>>(bits: I) -> usize
Converts an iterator of bits into a number. The bits should be in descending order (most- to least-significant).
The function panics if the input represents a number that can’t fit in the output type.
$$ f((b_i)_ {i=0}^{k-1}) = \sum_{i=0}^{k-1}2^{k-i-1} [b_i], $$ where braces denote the Iverson bracket, which converts a bit to 0 or 1.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is bits.count()
.
§Panics
Panics if the bits represent a value that isn’t representable by the output type.
§Examples
See here.