C# Класс IntXLib.DigitOpHelper

Contains helping methods for operations over IntX digits as arrays.
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
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.

Приватные методы

Метод Описание
CmpLen ( uint length1, uint length2 ) : int

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

Описание методов

Add() публичный статический Метод

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.
Результат uint

BitwiseAnd() публичный статический Метод

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.
Результат uint

BitwiseOr() публичный статический Метод

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.
Результат void

Cmp() публичный статический Метод

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.
Результат int

DivMod() публичный статический Метод

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).
Результат uint

ExclusiveOr() публичный статический Метод

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.
Результат uint

Mod() публичный статический Метод

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.
Результат uint

OnesComplement() публичный статический Метод

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.
Результат uint

Shr() публичный статический Метод

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.
Результат uint

Shr() публичный статический Метод

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).
Результат void

Sub() публичный статический Метод

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.
Результат uint