Next: , Previous: LargePositiveInteger-converting, Up: LargePositiveInteger


1.97.3 LargePositiveInteger: helper byte-level methods

bytes: byteArray1 from: j compare: byteArray2
Private - Answer the sign of byteArray2 - byteArray1; the j-th byte of byteArray1 is compared with the first of byteArray2, the j+1-th with the second, and so on.


bytes: byteArray1 from: j subtract: byteArray2
Private - Sutract the bytes in byteArray2 from those in byteArray1


bytes: bytes multiply: anInteger
Private - Multiply the bytes in bytes by anInteger, which must be < 255. Put the result back in bytes.


bytesLeftShift: aByteArray
Private - Left shift by 1 place the bytes in aByteArray


bytesLeftShift: aByteArray big: totalShift
Private - Left shift the bytes in aByteArray by totalShift places


bytesLeftShift: aByteArray n: shift
Private - Left shift by shift places the bytes in aByteArray (shift <= 7)


bytesRightShift: aByteArray big: totalShift
Private - Right shift the bytes in aByteArray by totalShift places


bytesRightShift: bytes n: aNumber
Private - Right shift the bytes in `bytes' by 'aNumber' places (shift <= 7)


bytesTrailingZeros: bytes
Private - Answer the number of trailing zero bits in the receiver


primDivide: rhs
Private - Implements Knuth's divide and correct algorithm from `Seminumerical Algorithms' 3rd Edition, section 4.3.1 (which is basically an enhanced version of the divide `algorithm' for two-digit divisors which is taught in primary school!!!)