         for i in e..<b {
             value[i] = ((value[i+1] & mask) << oh) | (value[i] >> ol)
         }
-        var result = BigUInt(rawValue:value)
-        result.trim()   // clean sentinel
-        return result
+        return BigUInt(rawValue:value)
     }
     public static func bitShiftR(lhs:BigUInt, _ rhs:BigUInt)->BigUInt {
         return bitShiftR(lhs, rhs.asUInt32)

        let shift = lhs.value.map{ $0 << DigitType(offset) } + [0]
        let carry = [0] + lhs.value.map{ $0 >> DigitType(32 - offset) }
        let value = zip(shift, carry).map { $0.0 | $0.1 }
        var result = BigUInt(rawValue:blank + value)
        result.trim()   // clean sentinel
        return result
    }
    public static func bitShiftL(lhs:BigUInt, _ rhs:BigUInt)->BigUInt {
        return bitShiftL(lhs, rhs.asUInt32)

            carry = UInt64(carry % UInt64(rhs)) << 32 + UInt64(value[i])
            value[i] = UInt32(carry / UInt64(rhs))
        }
        return (BigUInt(rawValue:value), UInt32(carry % UInt64(rhs)))
    }
    public static let int2char = Array("0123456789abcdefghijklmnopqrstuvwxyz".characters)
    public func toString(base:Int = 10)-> String {
