C# Class IntXLib.DigitOpHelper

Contains helping methods for operations over IntX digits as arrays.
ファイルを表示 Open project: devoyster/IntXLib Class Usage Examples

Public Methods

Method 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

Method Description
CmpLen ( uint length1, uint length2 ) : int

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

Method Details

Add() public static method

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.
return uint

BitwiseAnd() public static method

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.
return uint

BitwiseOr() public static method

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.
return void

Cmp() public static method

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.
return int

DivMod() public static method

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).
return uint

ExclusiveOr() public static method

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.
return uint

Mod() public static method

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.
return uint

OnesComplement() public static method

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.
return uint

Shr() public static method

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.
return uint

Shr() public static method

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).
return void

Sub() public static method

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.
return uint