numberToHex function
Converts the number
, which can either be a dart int or a BigInt,
into a hexadecimal representation. The number needs to be positive or zero.
When pad
is set to true, this method will prefix a zero so that the result
will have an even length. Further, if forcePadLen
is not null and the
result has a length smaller than forcePadLen
, the rest will be left-padded
with zeroes. Note that forcePadLen
refers to the string length, meaning
that one byte has a length of 2. When include0x
is set to true, the
output wil have "0x" prepended to it after any padding is done.
Implementation
String numberToHex(dynamic number,
{bool pad = false, bool include0x = false, int? forcePadLen}) {
String toHexSimple() {
if (number is int) {
return number.toRadixString(16);
} else if (number is BigInt) {
return number.toRadixString(16);
} else {
throw TypeError();
}
}
var hexString = toHexSimple();
if (pad && !hexString.length.isEven) hexString = "0$hexString";
if (forcePadLen != null) hexString = hexString.padLeft(forcePadLen, "0");
if (include0x) hexString = "0x$hexString";
return hexString;
}