setUint64 method
void
setUint64(
- int offset,
- int value, [
- Endian endian = Endian.little
])
Implementation
void setUint64(int offset, int value, [Endian endian = Endian.little]) {
if (kIsWeb) {
// BigInt a = 33 as BigInt;
// int l = BigInt value & 0xFFFFFFFF;
// int h = value >> 32;
// int h = (value % TWO_PWR_32) | 0;
// int l = ((value / TWO_PWR_32)) | 0;
// _dv.setInt32(offset, h, endian);
// _dv.setInt32(offset + 4, l, endian);
var bi = BigInt.from(value);
var byte = BigInt.from(0xFF);
if (endian == Endian.big) {
_dv.setUint8(offset++, ((bi >> 56) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 48) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 40) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 32) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 24) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 16) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 8) & byte).toInt());
_dv.setUint8(offset++, (bi & byte).toInt());
} else {
_dv.setUint8(offset++, ((bi) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 8) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 16) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 24) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 32) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 40) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 48) & byte).toInt());
_dv.setUint8(offset++, ((bi >> 56) & byte).toInt());
}
} else {
_dv.setUint64(offset, value, endian);
}
}