Math.Gmp.Native/docs/html/9e7b9239-a7a8-4667-f6c7-bfc...

87 lines
20 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>gmp_lib.mpf_get_str Method (char_ptr, mp_exp_t, Int32, size_t, mpf_t)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.gmp_lib.mpf_get_str(Math.Gmp.Native.char_ptr,Math.Gmp.Native.mp_exp_t@,System.Int32,Math.Gmp.Native.size_t,Math.Gmp.Native.mpf_t)" /><meta name="Description" content="Convert to a string of digits in base ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="9e7b9239-a7a8-4667-f6c7-bfc142d3f429" /><meta name="guid" content="9e7b9239-a7a8-4667-f6c7-bfc142d3f429" /><link type="text/css" rel="stylesheet" href="../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"> </script><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm" title="gmp_lib Class" tocid="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f">gmp_lib Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74.htm" title="gmp_lib Methods" tocid="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74">gmp_lib Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="73766ead-a037-a852-4589-04adc3407e15.htm" title="mpf_get_str Method " tocid="73766ead-a037-a852-4589-04adc3407e15">mpf_get_str Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="9e7b9239-a7a8-4667-f6c7-bfc142d3f429.htm" title="mpf_get_str Method (char_ptr, mp_exp_t, Int32, size_t, mpf_t)" tocid="9e7b9239-a7a8-4667-f6c7-bfc142d3f429">mpf_get_str Method (char_ptr, mp_exp_t, Int32, size_t, mpf_t)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="bad56282-fbca-6e3b-03c8-085cff07eed8.htm" title="mpf_get_str Method (char_ptr, ptr(mp_exp_t), Int32, size_t, mpf_t)" tocid="bad56282-fbca-6e3b-03c8-085cff07eed8">mpf_get_str Method (char_ptr, ptr(mp_exp_t), Int32, size_t, mpf_t)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">gmp_lib<span id="LSTC58F7F1B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_0?cpp=::|nu=.");</script>mpf_get_str Method (char_ptr, mp_exp_t<span id="LSTC58F7F1B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_1?cpp=%");</script>, Int32, size_t, mpf_t)</td></tr></table><span class="introStyle"></span> <div class="summary">
Convert <span class="parameter">op</span> to a string of digits in base <span class="parameter">base</span>.
</div><p> </p>
<strong>Namespace:</strong>
 <a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native</a><br />
<strong>Assembly:</strong>
 Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">char_ptr</span> <span class="identifier">mpf_get_str</span>(
<span class="identifier">char_ptr</span> <span class="parameter">str</span>,
<span class="keyword">ref</span> <span class="identifier">mp_exp_t</span> <span class="parameter">expptr</span>,
<span class="identifier">int</span> <span class="parameter">base</span>,
<span class="identifier">size_t</span> <span class="parameter">n_digits</span>,
<span class="identifier">mpf_t</span> <span class="parameter">op</span>
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">mpf_get_str</span> (
<span class="parameter">str</span> <span class="keyword">As</span> <span class="identifier">char_ptr</span>,
<span class="keyword">ByRef</span> <span class="parameter">expptr</span> <span class="keyword">As</span> <span class="identifier">mp_exp_t</span>,
<span class="parameter">base</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
<span class="parameter">n_digits</span> <span class="keyword">As</span> <span class="identifier">size_t</span>,
<span class="parameter">op</span> <span class="keyword">As</span> <span class="identifier">mpf_t</span>
) <span class="keyword">As</span> <span class="identifier">char_ptr</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">static</span> <span class="identifier">char_ptr</span> <span class="identifier">mpf_get_str</span>(
<span class="identifier">char_ptr</span> <span class="parameter">str</span>,
<span class="identifier">mp_exp_t</span>% <span class="parameter">expptr</span>,
<span class="identifier">int</span> <span class="parameter">base</span>,
<span class="identifier">size_t</span> <span class="parameter">n_digits</span>,
<span class="identifier">mpf_t</span>^ <span class="parameter">op</span>
)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">mpf_get_str</span> :
<span class="parameter">str</span> : <span class="identifier">char_ptr</span> *
<span class="parameter">expptr</span> : <span class="identifier">mp_exp_t</span> <span class="keyword">byref</span> *
<span class="parameter">base</span> : <span class="identifier">int</span> *
<span class="parameter">n_digits</span> : <span class="identifier">size_t</span> *
<span class="parameter">op</span> : <span class="identifier">mpf_t</span> <span class="keyword">-&gt;</span> <span class="identifier">char_ptr</span>
</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">str</span></dt><dd>Type: <a href="06249483-9daf-95f9-32c7-30195550bbcc.htm">Math.Gmp.Native<span id="LSTC58F7F1B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>char_ptr</a><br />The output string.</dd><dt><span class="parameter">expptr</span></dt><dd>Type: <a href="e6a17880-791f-37d4-4942-cf26ce7d4cbf.htm">Math.Gmp.Native<span id="LSTC58F7F1B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_exp_t</a><span id="LSTC58F7F1B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_4?cpp=%");</script><br />The exponent.</dd><dt><span class="parameter">base</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTC58F7F1B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />The base.</dd><dt><span class="parameter">n_digits</span></dt><dd>Type: <a href="d9761bfb-1882-59d2-e89b-c6460141f9a6.htm">Math.Gmp.Native<span id="LSTC58F7F1B_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>size_t</a><br />Maximum number of output digits.</dd><dt><span class="parameter">op</span></dt><dd>Type: <a href="37c88d6c-8d02-2330-ad77-f20fb73d1677.htm">Math.Gmp.Native<span id="LSTC58F7F1B_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC58F7F1B_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpf_t</a><br />The operand floating-point number.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="06249483-9daf-95f9-32c7-30195550bbcc.htm">char_ptr</a><br />A pointer to the result string is returned, being either the allocated block or the given <span class="parameter">str</span>.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Remarks</span></div><div id="ID2RBSection" class="collapsibleSection"><p>
The <span class="parameter">base</span> argument may vary from 2 to 62 or from -2 to -36.
Up to <span class="parameter">n_digits</span> digits will be generated.
Trailing zeros are not returned.
No more digits than can be accurately represented by <span class="parameter">op</span> are ever generated.
If <span class="parameter">n_digits</span> is 0 then that accurate maximum number of digits are generated.
</p><p>
For <span class="parameter">base</span> in the range 2..36, digits and lower-case letters are used; for -2..-36,
digits and upper-case letters are used; for 37..62, digits, upper-case letters, and lower-case letters
(in that significance order) are used.
</p><p>
If <span class="parameter">str</span> is NULL, the result string is allocated using the current allocation function
(see <a href="https://gmplib.org/manual/Custom-Allocation.html#Custom-Allocation">GNU MP - Custom Allocation</a>).
The block will be strlen(str) + 1 bytes, that being exactly enough for the string and null-terminator.
</p><p>
If <span class="parameter">str</span> is not NULL, it should point to a block of <span class="parameter">n_digits</span> + 2 bytes,
that being enough for the mantissa, a possible minus sign, and a null-terminator.
When <span class="parameter">n_digits</span> is 0 to get all significant digits, an application wont be able to know
the space required, and <span class="parameter">str</span> should be NULL in that case.
</p><p>
The generated string is a fraction, with an implicit radix point immediately to the left of the first digit.
The applicable exponent is written through the <span class="parameter">expptr</span> pointer.
For example, the number 3.1416 would be returned as string "31416" and exponent 1.
</p><p>
When <span class="parameter">op</span> is zero, an empty string is produced and the exponent returned is 0.
</p></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Examples</span></div><div id="ID3RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDAABA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','cs','1','4');return false;">C#</a></div><div id="ID0EDAABA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','vb','2','4');return false;">VB</a></div><div id="ID0EDAABA_tab3" class="codeSnippetContainerTabPhantom"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','cpp','3','4');return false;">C++</a></div><div id="ID0EDAABA_tab4" class="codeSnippetContainerTabPhantom"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDAABA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDAABA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDAABA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="highlight-comment">// Set default precision to 64 bits.</span>
gmp_lib.mpf_set_default_prec(<span class="highlight-number">64</span>U);
<span class="highlight-comment">// Create, initialize, and set a new floating-point number to -8.0</span>
mpf_t x = <span class="highlight-keyword">new</span> mpf_t();
gmp_lib.mpf_init_set_d(x, <span class="highlight-number">-8.0</span>);
<span class="highlight-comment">// Assert that the value of x is -8.</span>
mp_exp_t exp = <span class="highlight-number">0</span>;
char_ptr <span class="highlight-keyword">value</span> = gmp_lib.mpf_get_str(char_ptr.Zero, <span class="highlight-keyword">ref</span> exp, <span class="highlight-number">10</span>, <span class="highlight-number">0</span>, x);
Assert.IsTrue(<span class="highlight-keyword">value</span>.ToString() == <span class="highlight-literal">"-8"</span>);
Assert.IsTrue(exp == <span class="highlight-number">1</span>);
<span class="highlight-comment">// Release unmanaged memory allocated for x.</span>
gmp_lib.mpf_clear(x);
gmp_lib.free(<span class="highlight-keyword">value</span>);</pre></div><div id="ID0EDAABA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="highlight-comment">' Set default precision to 64 bits.</span>
gmp_lib.mpf_set_default_prec(<span class="highlight-number">64</span>UI)
<span class="highlight-comment">' Create, initialize, and set a new floating-point number to -8.0</span>
<span class="highlight-keyword">Dim</span> x <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> mpf_t()
gmp_lib.mpf_init_set_d(x, <span class="highlight-number">-8.0</span>)
<span class="highlight-comment">' Assert that the value of x is -8.</span>
<span class="highlight-keyword">Dim</span> exp <span class="highlight-keyword">As</span> mp_exp_t = <span class="highlight-number">0</span>
<span class="highlight-keyword">Dim</span> value <span class="highlight-keyword">As</span> char_ptr = gmp_lib.mpf_get_str(char_ptr.Zero, exp, <span class="highlight-number">10</span>, <span class="highlight-number">0</span>, x)
Assert.IsTrue(value.ToString() = <span class="highlight-literal">"-8"</span>)
Assert.IsTrue(exp = <span class="highlight-number">1</span>)
<span class="highlight-comment">' Release unmanaged memory allocated for x.</span>
gmp_lib.mpf_clear(x)
gmp_lib.free(value)</pre></div><div id="ID0EDAABA_code_Div3" class="codeSnippetContainerCode" style="display: none"><p>No code example is currently available or this language may not be supported.</p></div><div id="ID0EDAABA_code_Div4" class="codeSnippetContainerCode" style="display: none"><p>No code example is currently available or this language may not be supported.</p></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDAABA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm">gmp_lib Class</a></div><div class="seeAlsoStyle"><a href="73766ead-a037-a852-4589-04adc3407e15.htm">mpf_get_str Overload</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div><div class="seeAlsoStyle"><a href="648fa405-45d3-506a-f6be-72642e8a7f32.htm">mpf_get_d</a></div><div class="seeAlsoStyle"><a href="e1edc21e-74a0-b44c-216b-bad204b5a48a.htm">mpf_get_d_2exp</a></div><div class="seeAlsoStyle"><a href="d948e832-ee71-628a-6a7b-766138afff62.htm">mpf_get_si</a></div><div class="seeAlsoStyle"><a href="aa3fd0ea-a8b6-674b-59ff-b6d4785baed1.htm">mpf_get_ui</a></div><div class="seeAlsoStyle"><a href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"><a href="/Math.Gmp.Native/html/3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm#Converting_Floats">Converting Floats</a></a></div><div class="seeAlsoStyle"><a href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"><a href="https://gmplib.org/manual/Converting-Floats.html#Converting-Floats">GNU MP - Converting Floats</a></a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>