Uint32 class

Implemented types

Constructors

Uint32(int value)
factory
Uint32.from(int value)
Builds from a plain Dart int, accepting negative values by taking their two's-complement bit pattern (masked to 32 bits) instead of throwing like Uint32.new does — e.g. Uint32.from(-1) == Uint32.max. Mirrors the masking Int32.new already does for negative input.
factory
Uint32.fromBigInt(BigInt value)
factory
Uint32.unsafe(int _value)
Raw bit-pattern constructor — value must already be in [0, 0xFFFFFFFF]. Prefer Uint32.new for arbitrary Dart ints.
const

Properties

hashCode int
The hash code for this object.
no setteroverride
isEven bool
no setter
isZero bool
no setter
rawBits int
Raw bit pattern as an unsigned int (0..0xFFFFFFFF).
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addChecked(Uint32 other) Uint32
compareTo(Uint32 other) int
Compares this object to another object.
override
mulChecked(Uint32 other) Uint32
The true product of two u32s can reach ~2^64 — still safe as a double (well under 2^53 is false here, so this uses the same wrapping * plus a division round-trip check rather than forming the full product directly).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
subChecked(Uint32 other) Uint32
toBigInt() BigInt
toBytes([Endian endian = Endian.big]) Uint8List
toDouble() double
toHexString({bool padded = true}) String
toInt() int
Always safe: _value is always < 2^32, far inside the double-safe integer range.
toInt128() Int128
Zero-extending widen, then reinterpret — always non-negative and exact for the same reason as toInt64.
toInt32() Int32
Same-width bit reinterpretation (two's complement) — e.g. Uint32.max.toInt32() == Int32.minusOne.
toInt64() Int64
Zero-extending widen, then reinterpret — always non-negative and exact, since a 32-bit magnitude always fits in a positive Int64.
toString() String
A string representation of this object.
override
toUint128() Uint128
Zero-extending widen. Always exact.
toUint256() Uint256
Zero-extending widen. Always exact.
toUint64() Uint64
Zero-extending widen. Always exact.

Operators

operator %(Uint32 other) Uint32
operator &(Uint32 other) Uint32
operator *(Uint32 other) Uint32
Multiply, keeping only the low 32 bits (wrapping). Two 32-bit magnitudes multiplied directly can reach ~2^64 — unsafe as a double on web — so this decomposes into 16-bit limbs first, the same way Uint64.operator* and Int32.operator* do.
operator +(Uint32 other) Uint32
operator -(Uint32 other) Uint32
operator <(Uint32 other) bool
operator <<(int n) Uint32
operator <=(Uint32 other) bool
operator ==(Object other) bool
The equality operator.
override
operator >(Uint32 other) bool
operator >=(Uint32 other) bool
operator >>(int n) Uint32
Logical right shift (the only kind that applies to an unsigned type). Right shift only shrinks magnitude, so this is always safe directly.
operator ^(Uint32 other) Uint32
operator unary-() Uint32
operator |(Uint32 other) Uint32
operator ~() Uint32
operator ~/(Uint32 other) Uint32
Both operands are always < 2^32 (well within the double-safe range), so plain int division/modulo here is exact directly — no BigInt or limb decomposition needed.

Static Methods

fromBytes(List<int> bytes, {Endian endian = Endian.big, int offset = 0}) Uint32
parseDecimal(String s) Uint32
Strict decimal parse: throws IntegerError on overflow, unlike the wrapping constructor.
parseHex(String s) Uint32

Constants

max → const Uint32
one → const Uint32
two → const Uint32
zero → const Uint32