operator >> method

Uint64 operator >>(
  1. int n
)

Logical (unsigned) right shift.

Implementation

Uint64 operator >>(int n) {
  final shift = n & 63;
  if (shift == 0) return this;
  if (shift < 32) {
    final loPart = _lo >>> shift; // right shift: always safe
    final carryFromHi = _safeShl32(_hi, 32 - shift);
    final newLo = (loPart | carryFromHi) & _mask32;
    final newHi = (_hi >>> shift) & _mask32; // right shift: always safe
    return Uint64._(newHi, newLo);
  }
  final newLo = (_hi >>> (shift - 32)) & _mask32; // right shift: always safe
  return Uint64._(0, newLo);
}