combineU256FromU64Parts static method
Implementation
static BigInt combineU256FromU64Parts(
List<BigInt> parts, {
Endian order = Endian.big,
}) {
if (parts.length != 4) {
throw ArgumentException.invalidOperationArguments(
"combineU256FromU64Parts",
name: "number",
reason: "Invalid parts length.",
);
}
BigInt result = BigInt.zero;
if (order == Endian.little) {
// Little-endian: [loLo, loHi, hiLo, hiHi]
result =
(parts[3] << 192) | (parts[2] << 128) | (parts[1] << 64) | parts[0];
} else {
// Big-endian: [hiHi, hiLo, loHi, loLo]
result =
(parts[0] << 192) | (parts[1] << 128) | (parts[2] << 64) | parts[3];
}
return result;
}