class_integer.html
来自「Crypto++是一个非常强大的密码学库,主要是功能全」· HTML 代码 · 共 793 行 · 第 1/4 页
HTML
793 行
<a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator-=</b> (const <a class="el" href="class_integer.html">Integer</a> &t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_3" doxytag="Integer::operator *="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator *=</b> (const <a class="el" href="class_integer.html">Integer</a> &t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_4" doxytag="Integer::operator/="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator/=</b> (const <a class="el" href="class_integer.html">Integer</a> &t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_5" doxytag="Integer::operator%="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator%=</b> (const <a class="el" href="class_integer.html">Integer</a> &t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_6" doxytag="Integer::operator/="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator/=</b> (word t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_7" doxytag="Integer::operator%="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator%=</b> (word t)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_8" doxytag="Integer::operator<<="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator<<=</b> (unsigned int)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_9" doxytag="Integer::operator>>="></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator>>=</b> (unsigned int)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_10" doxytag="Integer::Randomize"></a>void </td><td class="memItemRight" valign=bottom><b>Randomize</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int bitcount)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_11" doxytag="Integer::Randomize"></a>void </td><td class="memItemRight" valign=bottom><b>Randomize</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_integer.html">Integer</a> &min, const <a class="el" href="class_integer.html">Integer</a> &max)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz43_12">Randomize</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_integer.html">Integer</a> &min, const <a class="el" href="class_integer.html">Integer</a> &max, RandomNumberType rnType, const <a class="el" href="class_integer.html">Integer</a> &equiv=Zero(), const <a class="el" href="class_integer.html">Integer</a> &mod=One())</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">set this Integer to a random element of {x | min <= x <= max and x is of rnType and x mod == equiv} </em> <a href="#_integerz43_12"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_13" doxytag="Integer::GenerateRandomNoThrow"></a>bool </td><td class="memItemRight" valign=bottom><b>GenerateRandomNoThrow</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &params=<a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a>)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_14" doxytag="Integer::GenerateRandom"></a>void </td><td class="memItemRight" valign=bottom><b>GenerateRandom</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &params=<a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a>)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_15" doxytag="Integer::SetBit"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz43_15">SetBit</a> (unsigned int n, bool value=1)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">set the n-th bit to value <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_16" doxytag="Integer::SetByte"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz43_16">SetByte</a> (unsigned int n, byte value)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">set the n-th byte to value <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_17" doxytag="Integer::Negate"></a>void </td><td class="memItemRight" valign=bottom><b>Negate</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_18" doxytag="Integer::SetPositive"></a>void </td><td class="memItemRight" valign=bottom><b>SetPositive</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_19" doxytag="Integer::SetNegative"></a>void </td><td class="memItemRight" valign=bottom><b>SetNegative</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz43_20" doxytag="Integer::swap"></a>void </td><td class="memItemRight" valign=bottom><b>swap</b> (<a class="el" href="class_integer.html">Integer</a> &a)</td></tr><tr><td colspan=2><br><h2>UNARY OPERATORS</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_0" doxytag="Integer::operator!"></a>bool </td><td class="memItemRight" valign=bottom><b>operator!</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_1" doxytag="Integer::operator+"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator+</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_2" doxytag="Integer::operator-"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator-</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_3" doxytag="Integer::operator++"></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator++</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_4" doxytag="Integer::operator--"></a><a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>operator--</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_5" doxytag="Integer::operator++"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator++</b> (int)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz45_6" doxytag="Integer::operator--"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator--</b> (int)</td></tr><tr><td colspan=2><br><h2>BINARY OPERATORS</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz47_0">Compare</a> (const <a class="el" href="class_integer.html">Integer</a> &a) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">signed comparison </em> <a href="#_integerz47_0"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_1" doxytag="Integer::Plus"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Plus</b> (const <a class="el" href="class_integer.html">Integer</a> &b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_2" doxytag="Integer::Minus"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Minus</b> (const <a class="el" href="class_integer.html">Integer</a> &b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_3" doxytag="Integer::Times"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Times</b> (const <a class="el" href="class_integer.html">Integer</a> &b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_4" doxytag="Integer::DividedBy"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>DividedBy</b> (const <a class="el" href="class_integer.html">Integer</a> &b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_5" doxytag="Integer::Modulo"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Modulo</b> (const <a class="el" href="class_integer.html">Integer</a> &b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_6" doxytag="Integer::DividedBy"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>DividedBy</b> (word b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_7" doxytag="Integer::Modulo"></a>word </td><td class="memItemRight" valign=bottom><b>Modulo</b> (word b) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_8" doxytag="Integer::operator>>"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator>></b> (unsigned int n) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz47_9" doxytag="Integer::operator<<"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>operator<<</b> (unsigned int n) const</td></tr><tr><td colspan=2><br><h2>OTHER ARITHMETIC FUNCTIONS</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_0" doxytag="Integer::AbsoluteValue"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>AbsoluteValue</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_1" doxytag="Integer::Doubled"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Doubled</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_2" doxytag="Integer::Squared"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>Squared</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_3" doxytag="Integer::SquareRoot"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_3">SquareRoot</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">extract square root, if negative return 0, else return floor of square root <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_4" doxytag="Integer::IsSquare"></a>bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_4">IsSquare</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return whether this integer is a perfect square <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_5" doxytag="Integer::IsUnit"></a>bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_5">IsUnit</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">is 1 or -1 <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_6" doxytag="Integer::MultiplicativeInverse"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_6">MultiplicativeInverse</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return inverse if 1 or -1, otherwise return 0 <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_7" doxytag="Integer::InverseMod"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_7">InverseMod</a> (const <a class="el" href="class_integer.html">Integer</a> &n) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">calculate multiplicative inverse of *this mod n <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_8" doxytag="Integer::InverseMod"></a>word </td><td class="memItemRight" valign=bottom><b>InverseMod</b> (word n) const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_9" doxytag="Integer::Divide"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_9">Divide</a> (<a class="el" href="class_integer.html">Integer</a> &r, <a class="el" href="class_integer.html">Integer</a> &q, const <a class="el" href="class_integer.html">Integer</a> &a, const <a class="el" href="class_integer.html">Integer</a> &d)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">calculate r and q such that (a == d*q + r) && (0 <= r < abs(d)) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_10" doxytag="Integer::Divide"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_10">Divide</a> (word &r, <a class="el" href="class_integer.html">Integer</a> &q, const <a class="el" href="class_integer.html">Integer</a> &a, word d)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">use a faster division algorithm when divisor is short <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_11" doxytag="Integer::DivideByPowerOf2"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_11">DivideByPowerOf2</a> (<a class="el" href="class_integer.html">Integer</a> &r, <a class="el" href="class_integer.html">Integer</a> &q, const <a class="el" href="class_integer.html">Integer</a> &a, unsigned int n)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">returns same result as Divide(r, q, a, Power2(n)), but faster <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_12" doxytag="Integer::Gcd"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_12">Gcd</a> (const <a class="el" href="class_integer.html">Integer</a> &a, const <a class="el" href="class_integer.html">Integer</a> &n)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">greatest common divisor <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_13" doxytag="Integer::a_times_b_mod_c"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_13">a_times_b_mod_c</a> (const <a class="el" href="class_integer.html">Integer</a> &x, const <a class="el" href="class_integer.html">Integer</a> &y, const <a class="el" href="class_integer.html">Integer</a> &m)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">modular multiplication <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz49_14" doxytag="Integer::a_exp_b_mod_c"></a><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_integerz49_14">a_exp_b_mod_c</a> (const <a class="el" href="class_integer.html">Integer</a> &x, const <a class="el" href="class_integer.html">Integer</a> &e, const <a class="el" href="class_integer.html">Integer</a> &m)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">modular exponentiation <br><br></td></tr><tr><td colspan=2><br><h2>INPUT/OUTPUT</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz51_0" doxytag="Integer::operator>>"></a>std::istream & </td><td class="memItemRight" valign=bottom><b>operator>></b> (std::istream &in, <a class="el" href="class_integer.html">Integer</a> &a)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integerz51_1" doxytag="Integer::operator<<"></a>std::ostream & </td><td class="memItemRight" valign=bottom><b>operator<<</b> (std::ostream &out, const <a class="el" href="class_integer.html">Integer</a> &a)</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_integer.html#_x509_public_keya10">BEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">encode this object into a <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a>, using BER </em> <a href="#_x509_public_keya10"></a><em><br><br></td></tr><tr><td colspan=2><br><h2>Friends</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern0" doxytag="Integer::ModularArithmetic"></a>class </td><td class="memItemRight" valign=bottom><a class="el" href="class_modular_arithmetic.html#_integern0">ModularArithmetic</a></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern1" doxytag="Integer::MontgomeryRepresentation"></a>class </td><td class="memItemRight" valign=bottom><a class="el" href="class_montgomery_representation.html#_integern1">MontgomeryRepresentation</a></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern2" doxytag="Integer::HalfMontgomeryRepresentation"></a>class </td><td class="memItemRight" valign=bottom><b>HalfMontgomeryRepresentation</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern3" doxytag="Integer::PositiveAdd"></a>void </td><td class="memItemRight" valign=bottom><b>PositiveAdd</b> (<a class="el" href="class_integer.html">Integer</a> &sum, const <a class="el" href="class_integer.html">Integer</a> &a, const <a class="el" href="class_integer.html">Integer</a> &b)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern4" doxytag="Integer::PositiveSubtract"></a>void </td><td class="memItemRight" valign=bottom><b>PositiveSubtract</b> (<a class="el" href="class_integer.html">Integer</a> &diff, const <a class="el" href="class_integer.html">Integer</a> &a, const <a class="el" href="class_integer.html">Integer</a> &b)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_integern5" doxytag="Integer::PositiveMultiply"></a>void </td><td class="memItemRight" valign=bottom><b>PositiveMultiply</b> (<a class="el" href="class_integer.html">Integer</a> &product, const <a class="el" href="class_integer.html">Integer</a> &a, const <a class="el" href="class_integer.html">Integer</a> &b)</td></tr>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?