C# 클래스 IntXLib.DigitOpHelper

Contains helping methods for operations over IntX digits as arrays.
파일 보기 프로젝트 열기: devoyster/IntXLib 1 사용 예제들

공개 메소드들

메소드 설명
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