u256
Expand description
Implementations
fn is_zero(self) -> bool
fn is_zero(self) -> bool
Returns whether a u256
is set to zero.
Returns
- [bool] -> True if the
u256
is zero, otherwise false.
Examples
fn foo() {
let zero_u256 = u256::zero();
assert(zero_u256.is_zero());
}
fn to_le_bytes(self) -> [u8; 32]
fn to_le_bytes(self) -> [u8; 32]
Converts the u256
to a sequence of little-endian bytes.
Returns
- [[u8; 32]] - An array of 32
u8
bytes that compose theu256
.
Examples
fn foo() {
let bytes = [32_u8, 31_u8, 30_u8, 29_u8, 28_u8, 27_u8, 26_u8, 25_u8, 24_u8, 23_u8,
22_u8, 21_u8, 20_u8, 19_u8, 18_u8, 17_u8, 16_u8, 15_u8, 14_u8, 13_u8,
12_u8, 11_u8, 10_u8, 9_u8, 8_u8, 7_u8, 6_u8, 5_u8, 4_u8, 3_u8,
2_u8, 1_u8];
let x = u256::from_le_bytes(bytes);
assert(x == 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20u256);
}
fn from_le_bytes(bytes: [u8; 32]) -> Self
fn from_le_bytes(bytes: [u8; 32]) -> Self
Converts a sequence of little-endian bytes to a u256
.
Arguments
bytes
: [[u8; 32]] - A sequence of 32u8
bytes that represent au256
.
Returns
- [u256] - The resulting
u256
value.
Examples
fn foo() {
let bytes = [32_u8, 31_u8, 30_u8, 29_u8, 28_u8, 27_u8, 26_u8, 25_u8, 24_u8, 23_u8,
22_u8, 21_u8, 20_u8, 19_u8, 18_u8, 17_u8, 16_u8, 15_u8, 14_u8, 13_u8,
12_u8, 11_u8, 10_u8, 9_u8, 8_u8, 7_u8, 6_u8, 5_u8, 4_u8, 3_u8,
2_u8, 1_u8];
let x = u256::from_le_bytes(bytes);
assert(x == 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20u256;
fn to_be_bytes(self) -> [u8; 32]
fn to_be_bytes(self) -> [u8; 32]
Converts the u256
to a sequence of big-endian bytes.
Returns
- [[u8; 32]] - An array of 32
u8
bytes that compose theu256
.
Examples
fn foo() {
let x: u256 = 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20u256;
let bytes = x.to_be_bytes();
let mut i: u8 = 0;
while i < 32_u8 {
assert(bytes[i.as_u64()] == i + 1_u8);
i += 1_u8;
}
}
fn from_be_bytes(bytes: [u8; 32]) -> Self
fn from_be_bytes(bytes: [u8; 32]) -> Self
Converts a sequence of big-endian bytes to a u256
.
Arguments
bytes
: [[u8; 32]] - A sequence of 32u8
bytes that represent au256
.
Returns
- [u256] - The resulting
u256
value.
Examples
fn foo() {
let bytes = [1_u8, 2_u8, 3_u8, 4_u8, 5_u8, 6_u8, 7_u8, 8_u8, 9_u8, 10_u8,
11_u8, 12_u8, 13_u8, 14_u8, 15_u8, 16_u8, 17_u8, 18_u8, 19_u8, 20_u8,
21_u8, 22_u8, 23_u8, 24_u8, 25_u8, 26_u8, 27_u8, 28_u8, 29_u8, 30_u8,
31_u8, 32_u8];
let x = u256::from_be_bytes(bytes);
assert(x == 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20u256);
}
fn to_le_bytes(self) -> Bytes
fn to_le_bytes(self) -> Bytes
Converts the u256
to a sequence of little-endian bytes.
Returns
- [Bytes] - The 32 bytes that compose the
u256
.
Examples
fn foo() {
let x: u256 = 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20_u256;
let bytes = x.to_le_bytes();
let mut i: u8 = 0;
while i < 32_u8 {
assert(bytes.get(i.as_u64()).unwrap() == 32_u8 - i);
i += 1_u8;
}
}
fn from_le_bytes(bytes: Bytes) -> Self
fn from_le_bytes(bytes: Bytes) -> Self
Converts a sequence of little-endian bytes to a u256
.
Arguments
bytes
: [Bytes] - The 32 bytes that compose theu256
.
Returns
- [u256] - The resulting
u256
value.
Examples
fn foo() {
let mut bytes = Bytes::with_capacity(32);
let mut i: u8 = 0;
while i < 32_u8 {
bytes.push(32_u8 - i);
i += 1_u8;
}
let x = u256::from_le_bytes(bytes);
assert(x == 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20_u256);
}
fn to_be_bytes(self) -> Bytes
fn to_be_bytes(self) -> Bytes
Converts the u256
to a sequence of big-endian bytes.
Returns
- [Bytes] - The 32 bytes that compose the
u256
.
Examples
fn foo() {
let x: u256 = 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20_u256;
let bytes = x.to_be_bytes();
let mut i: u8 = 0;
while i < 32_u8 {
assert(bytes.get(i.as_u64()).unwrap() == i + 1_u8);
i += 1_u8;
}
}
fn from_be_bytes(bytes: Bytes) -> Self
fn from_be_bytes(bytes: Bytes) -> Self
Converts a sequence of big-endian bytes to a u256
.
Arguments
bytes
: [Bytes] - The 32 bytes that compose theu256
.
Returns
- [u256] - The resulting
u256
value.
Examples
fn foo() {
let mut bytes = Bytes::with_capacity(32);
let mut i: u8 = 0;
while i < 32_u8 {
bytes.push(i + 1);
i += 1_u8;
}
let x = u256::from_be_bytes(bytes);
assert(x == 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20_u256);
}
Trait Implementations
impl Power for u256
impl Power for u256
fn pow(self, exponent: u32) -> Self
fn pow(self, exponent: u32) -> Self
Raises self to the power of exponent
, using exponentiation by squaring.
Additional Information
- If panic on overflow is disabled, and the result overflows, the return value will be 0.
Reverts
- Reverts if the result overflows the type, if panic on overflow is enabled.
impl BinaryLogarithm for u256
impl BinaryLogarithm for u256
fn log2(self) -> Self
impl TryFrom<B512> for u256
impl TryFrom<B512> for u256
fn try_from(val: B512) -> Option<Self>
fn try_from(val: B512) -> Option<Self>
Attempts conversion from a B512
to a u256
.
Additional Information
If the high bits of the B512
are not zero, the conversion will fail.
Arguments
val
: [B512] - TheB512
to be converted.
Returns
- [Option] - The
u256
representation of theB512
value.
Examples
use std::b512::B512;
fn foo() {
let b512_value = B512::new();
let u256_value = u256::try_from(b512_value).unwrap();
}
impl From<u8> for u256
impl From<u8> for u256
fn from(num: u8) -> Self
fn from(num: u8) -> Self
Casts a u8
to a u256
.
Arguments
num
: [u8] - Theu8
to be casted.
Returns
- [u256] - The
u256
representation of theu8
value.
Examples
fn foo() {
let u256_value = u256::from(255_u8);
}
impl From<u16> for u256
impl From<u16> for u256
fn from(num: u16) -> Self
fn from(num: u16) -> Self
Casts a u16
to a u256
.
Arguments
num
: [u16] - Theu16
to be casted.
Returns
- [u256] - The
u256
representation of theu16
value.
Examples
fn foo() {
let u256_value = u256::from(65535_u16);
}
impl From<u32> for u256
impl From<u32> for u256
fn from(num: u32) -> Self
fn from(num: u32) -> Self
Casts a u32
to a u256
.
Arguments
num
: [u32] - Theu32
to be casted.
Returns
- [u256] - The
u256
representation of theu32
value.
Examples
fn foo() {
let u256_value = u256::from(4294967295_u32);
}
impl From<u64> for u256
impl From<u64> for u256
fn from(num: u64) -> Self
fn from(num: u64) -> Self
Casts a u64
to a u256
.
Arguments
num
: [u64] - Theu64
to be casted.
Returns
- [u256] - The
u256
representation of theu64
value.
Examples
fn foo() {
let u256_value = u256::from(18446744073709551615_u64);
}
impl From<b256> for u256
impl From<b256> for u256
fn from(bits: b256) -> Self
fn from(bits: b256) -> Self
Casts raw b256
data to a u256
.
Arguments
bits
: [b256] - The rawb256
data to be casted.
Returns
- [u256] - The
u256
representation of the rawb256
.
Examples
fn foo() {
let u256_value = u256::zero();
}
impl From<U128> for u256
impl From<U128> for u256
fn from(num: U128) -> Self
fn from(num: U128) -> Self
Converts a U128
to a u256
.
Arguments
num
: [U128] - TheU128
to be converted.
Returns
- [u256] - The
u256
representation of theU128
value.
Examples
use std::u128::U128;
fn foo() {
let u128_value = U128::from((18446744073709551615_u64, 18446744073709551615_u64));
let u256_value = u256::from(u128_value);
}
impl From<(u64, u64, u64, u64)> for u256
impl From<(u64, u64, u64, u64)> for u256
fn from(nums: (u64, u64, u64, u64)) -> Self
fn from(nums: (u64, u64, u64, u64)) -> Self
Casts a tuple of 4 u64
values to a u256
.
Arguments
nums
: (u64, u64, u64, u64) - The tuple ofu64
values to be casted.
Returns
- [u256] - The
u256
representation of the tuple ofu64
values.
Examples
fn foo() {
let u256_value = u256::from((1, 2, 3, 4));
}