⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hugeintx.h

📁 HugeCalc V5.1.0.1 ----> 这是一套绿色软件
💻 H
📖 第 1 页 / 共 2 页
字号:
// HugeIntX.h: interface for the CHugeIntX class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HUGEINTX_H__5B7DCBAC_6D89_4C55_B51F_D96B5E741B51__INCLUDED_)
#define AFX_HUGEINTX_H__5B7DCBAC_6D89_4C55_B51F_D96B5E741B51__INCLUDED_

#if _MSC_VER > 1000
	#pragma once
#endif // _MSC_VER > 1000

#include "HugeCalc.h"
#include "CarryParam.h"
class CHugeSIntX;
class CHugeIntX;

#ifndef _CHUGEINTX_VECTOR
    #define _CHUGEINTX_VECTOR
	#ifndef __SGI_STL_VECTOR
	    typedef vector< CHugeIntX > CHUGEINTX_VECTOR;
	#else
	    typedef vector< CHugeIntX, malloc_alloc > CHUGEINTX_VECTOR;
	#endif
#endif // !defined(_CHUGEINTX_VECTOR)

#ifndef _LPCHUGEINTX_VECTOR
    #define _LPCHUGEINTX_VECTOR
	#ifndef __SGI_STL_VECTOR
	    typedef vector< CONST CHugeIntX * > LPCHUGEINTX_VECTOR;
	#else
	    typedef vector< CONST CHugeIntX *, malloc_alloc > LPCHUGEINTX_VECTOR;
	#endif
#endif // !defined(_LPCHUGEINTX_VECTOR)

#define HUGEINTX_API HUGECALC_API

class HUGEINTX_API CHugeIntX
{
	friend class CHugeInt;
	friend CCarryParam& CCarryParam::operator =( CONST CHugeIntX& right );
	// CompareAbs
	HUGEINTX_API friend CONST SINT32 CompareAbs( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST SINT32 CompareAbs( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST SINT32 CompareAbs( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST SINT32 CompareAbs( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST SINT32 CompareAbs( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// Compare
	HUGEINTX_API friend CONST SINT32 Compare( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST SINT32 Compare( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST SINT32 Compare( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST SINT32 Compare( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST SINT32 Compare( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// PowMod
	HUGEINTX_API friend CONST UINT32 PowMod( CONST UINT32 u32Base, CONST CHugeIntX& hugeExp, CONST UINT32 u32Mod );
	HUGEINTX_API friend CONST SINT64 PowMod( CONST CHugeIntX& hugeBase, CONST UINT32 u32Exp, CONST UINT32 u32Mod );
	HUGEINTX_API friend CONST SINT64 PowMod( CONST CHugeIntX& hugeBase, CONST SINT32 s32Exp, CONST UINT32 u32Mod );
	HUGEINTX_API friend CONST SINT64 PowMod( CONST CHugeIntX& hugeBase, CONST CHugeIntX& hugeExp, CONST UINT32 u32Mod );

	// relation operators
	HUGEINTX_API friend CONST BOOL operator ==( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator ==( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator ==( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator ==( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator ==( CONST CHugeIntX& left, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator !=( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator !=( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator !=( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator !=( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator !=( CONST CHugeIntX& left, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator <( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator <( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator <( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator <( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator <( CONST CHugeIntX& left, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator <=( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator <=( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator <=( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator <=( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator <=( CONST CHugeIntX& left, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator >( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator >( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator >( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator >( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator >( CONST CHugeIntX& left, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator >=( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST BOOL operator >=( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST BOOL operator >=( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST BOOL operator >=( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST BOOL operator >=( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// +
	HUGEINTX_API friend CONST CHugeIntX operator +( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST CHugeIntX operator +( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST CHugeIntX operator +( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST CHugeIntX operator +( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST CHugeIntX operator +( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// -
	HUGEINTX_API friend CONST CHugeIntX operator -( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST CHugeIntX operator -( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST CHugeIntX operator -( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST CHugeIntX operator -( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST CHugeIntX operator -( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// *
	HUGEINTX_API friend CONST CHugeIntX operator *( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST CHugeIntX operator *( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST CHugeIntX operator *( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST CHugeIntX operator *( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST CHugeIntX operator *( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// Division, return quotient
	HUGEINTX_API friend CONST SINT64 Div( CONST UINT32 u32Dividend, CONST CHugeIntX& hugeDivisor, UINT32 * CONST pRemainder = NULL );
	HUGEINTX_API friend CONST SINT32 Div( CONST SINT32 s32Dividend, CONST CHugeIntX& hugeDivisor, SINT32 * CONST pRemainder = NULL );

	// /
	HUGEINTX_API friend CONST SINT64 operator /( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST SINT32 operator /( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST CHugeIntX operator /( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST CHugeIntX operator /( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST CHugeIntX operator /( CONST CHugeIntX& left, CONST CHugeIntX& right );

	// %
	HUGEINTX_API friend CONST UINT32 operator %( CONST UINT32 u32Num, CONST CHugeIntX& right );
	HUGEINTX_API friend CONST SINT32 operator %( CONST SINT32 s32Num, CONST CHugeIntX& right );

	HUGEINTX_API friend CONST SINT64 operator %( CONST CHugeIntX& left, CONST UINT32 u32Num );
	HUGEINTX_API friend CONST SINT32 operator %( CONST CHugeIntX& left, CONST SINT32 s32Num );

	HUGEINTX_API friend CONST CHugeIntX operator %( CONST CHugeIntX& left, CONST CHugeIntX& right );

public:
	// Constructor
	explicit CHugeIntX( VOID );
	explicit CHugeIntX( CONST UINT32& u32Num );
	explicit CHugeIntX( CONST SINT32& s32Num );
	explicit CHugeIntX( CONST UINT64& u64Num );
	explicit CHugeIntX( CONST SINT64& s64Num );
	explicit CHugeIntX( CONST LPCTSTR lpszNum );
	explicit CHugeIntX( CONST CCarryParam& CarryParam );
	explicit CHugeIntX( CONST CHugeIntX& right );
	explicit CHugeIntX( CONST CHugeInt& right );

	// destructor
	/*virtual */~CHugeIntX( );

	static CONST SIZE_T GetCount( VOID );

	// reload operator ->
	CHugeIntX * CONST operator ->( VOID );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -