private static byte GetHighestByte(BigInt self, out int index, out byte[] byteArray) { byte[] bytes = BigInt.Abs(self).ToByteArray(); if (self.IsZero) { byteArray = bytes; index = 0; return 1; } int hi = bytes.Length; byte b; do { b = bytes[--hi]; } while (b == 0); index = hi; byteArray = bytes; return b; }