C# Class IntXLib.DigitOpHelper

Contains helping methods for operations over IntX digits as arrays.
Afficher le fichier Open project: devoyster/IntXLib Class Usage Examples

Méthodes publiques

Méthode Description
Add ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint

Adds two big integers.

BitwiseAnd ( uint digits1, uint digits2, uint length, uint digitsRes ) : uint

Performs bitwise AND for two big integers.

BitwiseOr ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : void

Performs bitwise OR for two big integers.

Cmp ( uint digits1, uint length1, uint digits2, uint length2 ) : int

Compares 2 IntX objects represented by digits only (not taking sign into account). Returns "-1" if digits1 < digits2, "0" if equal and "1" if >.

DivMod ( uint digits1, uint length1, uint int2, uint divRes, uint &modRes ) : uint

Divides one big integer represented by it's digits on another one big ingeter. Reminder is always filled (but not the result).

ExclusiveOr ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint

Performs bitwise XOR for two big integers.

Mod ( uint digits1, uint length1, uint int2 ) : uint

Divides one big integer represented by it's digits on another one big ingeter. Only remainder is filled.

OnesComplement ( uint digits, uint length, uint digitsRes ) : uint

Performs bitwise NOT for big integer.

Shr ( uint digitsPtr, uint length, uint digitsResPtr, int rightShift, bool resHasOffset ) : uint

Shifts big integer.

Shr ( uint digits, uint offset, uint length, uint digitsRes, uint resOffset, int rightShift ) : void

Shifts big integer.

Sub ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint

Subtracts two big integers.

Private Methods

Méthode Description
CmpLen ( uint length1, uint length2 ) : int

Compares two integers lengths. Returns -2 if further comparing is needed.

Method Details

Add() public static méthode

Adds two big integers.
public static Add ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint
digits1 uint First big integer digits.
length1 uint First big integer length.
digits2 uint Second big integer digits.
length2 uint Second big integer length.
digitsRes uint Resulting big integer digits.
Résultat uint

BitwiseAnd() public static méthode

Performs bitwise AND for two big integers.
public static BitwiseAnd ( uint digits1, uint digits2, uint length, uint digitsRes ) : uint
digits1 uint First big integer digits.
digits2 uint Second big integer digits.
length uint Shorter big integer length.
digitsRes uint Resulting big integer digits.
Résultat uint

BitwiseOr() public static méthode

Performs bitwise OR for two big integers.
public static BitwiseOr ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : void
digits1 uint First big integer digits.
length1 uint First big integer length.
digits2 uint Second big integer digits.
length2 uint Second big integer length.
digitsRes uint Resulting big integer digits.
Résultat void

Cmp() public static méthode

Compares 2 IntX objects represented by digits only (not taking sign into account). Returns "-1" if digits1 < digits2, "0" if equal and "1" if >.
public static Cmp ( uint digits1, uint length1, uint digits2, uint length2 ) : int
digits1 uint First big integer digits.
length1 uint First big integer length.
digits2 uint Second big integer digits.
length2 uint Second big integer length.
Résultat int

DivMod() public static méthode

Divides one big integer represented by it's digits on another one big ingeter. Reminder is always filled (but not the result).
public static DivMod ( uint digits1, uint length1, uint int2, uint divRes, uint &modRes ) : uint
digits1 uint First big integer digits.
length1 uint First big integer length.
int2 uint Second integer.
divRes uint Div result (can be null - not filled in this case).
modRes uint Remainder (always filled).
Résultat uint

ExclusiveOr() public static méthode

Performs bitwise XOR for two big integers.
public static ExclusiveOr ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint
digits1 uint First big integer digits.
length1 uint First big integer length.
digits2 uint Second big integer digits.
length2 uint Second big integer length.
digitsRes uint Resulting big integer digits.
Résultat uint

Mod() public static méthode

Divides one big integer represented by it's digits on another one big ingeter. Only remainder is filled.
public static Mod ( uint digits1, uint length1, uint int2 ) : uint
digits1 uint First big integer digits.
length1 uint First big integer length.
int2 uint Second integer.
Résultat uint

OnesComplement() public static méthode

Performs bitwise NOT for big integer.
public static OnesComplement ( uint digits, uint length, uint digitsRes ) : uint
digits uint Big integer digits.
length uint Big integer length.
digitsRes uint Resulting big integer digits.
Résultat uint

Shr() public static méthode

Shifts big integer.
public static Shr ( uint digitsPtr, uint length, uint digitsResPtr, int rightShift, bool resHasOffset ) : uint
digitsPtr uint Big integer digits.
length uint Big integer length.
digitsResPtr uint Resulting big integer digits.
rightShift int Shift to the right (always between 1 an 31).
resHasOffset bool True if has offset.
Résultat uint

Shr() public static méthode

Shifts big integer.
public static Shr ( uint digits, uint offset, uint length, uint digitsRes, uint resOffset, int rightShift ) : void
digits uint Big integer digits.
offset uint Big integer digits offset.
length uint Big integer length.
digitsRes uint Resulting big integer digits.
resOffset uint Resulting big integer digits offset.
rightShift int Shift to the right (always between 1 an 31).
Résultat void

Sub() public static méthode

Subtracts two big integers.
public static Sub ( uint digits1, uint length1, uint digits2, uint length2, uint digitsRes ) : uint
digits1 uint First big integer digits.
length1 uint First big integer length.
digits2 uint Second big integer digits.
length2 uint Second big integer length.
digitsRes uint Resulting big integer digits.
Résultat uint