Math.Gmp.Native/docs/html/95c2ec1a-18ef-5081-f614-ccb...

128 lines
27 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.

<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.mpz_export Method (void_ptr, ptr(size_t), Int32, size_t, Int32, size_t, mpz_t)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.gmp_lib.mpz_export(Math.Gmp.Native.void_ptr,Math.Gmp.Native.ptr{Math.Gmp.Native.size_t},System.Int32,Math.Gmp.Native.size_t,System.Int32,Math.Gmp.Native.size_t,Math.Gmp.Native.mpz_t)" /><meta name="Description" content="Fill with word data from ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="95c2ec1a-18ef-5081-f614-ccb6047a2b52" /><meta name="guid" content="95c2ec1a-18ef-5081-f614-ccb6047a2b52" /><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="5fbffc1a-1ac4-6ca6-e528-abe7f8c96667.htm" title="mpz_export Method " tocid="5fbffc1a-1ac4-6ca6-e528-abe7f8c96667">mpz_export Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="95c2ec1a-18ef-5081-f614-ccb6047a2b52.htm" title="mpz_export Method (void_ptr, ptr(size_t), Int32, size_t, Int32, size_t, mpz_t)" tocid="95c2ec1a-18ef-5081-f614-ccb6047a2b52">mpz_export Method (void_ptr, ptr(size_t), Int32, size_t, Int32, size_t, mpz_t)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="c9d371c8-8c16-77a3-2c47-8edae05276c5.htm" title="mpz_export Method (void_ptr, size_t, Int32, size_t, Int32, size_t, mpz_t)" tocid="c9d371c8-8c16-77a3-2c47-8edae05276c5">mpz_export Method (void_ptr, size_t, Int32, size_t, Int32, size_t, mpz_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="LSTCFF43A25_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_0?cpp=::|nu=.");</script>mpz_export Method (void_ptr, ptr<span id="LSTCFF43A25_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>size_t<span id="LSTCFF43A25_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Int32, size_t, Int32, size_t, mpz_t)</td></tr></table><span class="introStyle"></span> <div class="summary">
Fill <span class="parameter">rop</span> with word data from <span class="parameter">op</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">void_ptr</span> <span class="identifier">mpz_export</span>(
<span class="identifier">void_ptr</span> <span class="parameter">rop</span>,
<span class="identifier">ptr</span>&lt;<span class="identifier">size_t</span>&gt; <span class="parameter">countp</span>,
<span class="identifier">int</span> <span class="parameter">order</span>,
<span class="identifier">size_t</span> <span class="parameter">size</span>,
<span class="identifier">int</span> <span class="parameter">endian</span>,
<span class="identifier">size_t</span> <span class="parameter">nails</span>,
<span class="identifier">mpz_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">mpz_export</span> (
<span class="parameter">rop</span> <span class="keyword">As</span> <span class="identifier">void_ptr</span>,
<span class="parameter">countp</span> <span class="keyword">As</span> <span class="identifier">ptr</span>(<span class="keyword">Of</span> <span class="identifier">size_t</span>),
<span class="parameter">order</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
<span class="parameter">size</span> <span class="keyword">As</span> <span class="identifier">size_t</span>,
<span class="parameter">endian</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
<span class="parameter">nails</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">mpz_t</span>
) <span class="keyword">As</span> <span class="identifier">void_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">void_ptr</span> <span class="identifier">mpz_export</span>(
<span class="identifier">void_ptr</span> <span class="parameter">rop</span>,
<span class="identifier">ptr</span>&lt;<span class="identifier">size_t</span>&gt;^ <span class="parameter">countp</span>,
<span class="identifier">int</span> <span class="parameter">order</span>,
<span class="identifier">size_t</span> <span class="parameter">size</span>,
<span class="identifier">int</span> <span class="parameter">endian</span>,
<span class="identifier">size_t</span> <span class="parameter">nails</span>,
<span class="identifier">mpz_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">mpz_export</span> :
<span class="parameter">rop</span> : <span class="identifier">void_ptr</span> *
<span class="parameter">countp</span> : <span class="identifier">ptr</span>&lt;<span class="identifier">size_t</span>&gt; *
<span class="parameter">order</span> : <span class="identifier">int</span> *
<span class="parameter">size</span> : <span class="identifier">size_t</span> *
<span class="parameter">endian</span> : <span class="identifier">int</span> *
<span class="parameter">nails</span> : <span class="identifier">size_t</span> *
<span class="parameter">op</span> : <span class="identifier">mpz_t</span> <span class="keyword">-&gt;</span> <span class="identifier">void_ptr</span>
</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">rop</span></dt><dd>Type: <a href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">Math.Gmp.Native<span id="LSTCFF43A25_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>void_ptr</a><br />The result integer.</dd><dt><span class="parameter">countp</span></dt><dd>Type: <a href="542faa00-d28a-72a2-2dd8-6c6021e683ce.htm">Math.Gmp.Native<span id="LSTCFF43A25_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ptr</a><span id="LSTCFF43A25_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="d9761bfb-1882-59d2-e89b-c6460141f9a6.htm">size_t</a><span id="LSTCFF43A25_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The number of words produced.</dd><dt><span class="parameter">order</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTCFF43A25_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />1 for most significant word first or -1 for least significant first.</dd><dt><span class="parameter">size</span></dt><dd>Type: <a href="d9761bfb-1882-59d2-e89b-c6460141f9a6.htm">Math.Gmp.Native<span id="LSTCFF43A25_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>size_t</a><br />The number of bytes in each word.</dd><dt><span class="parameter">endian</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTCFF43A25_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />1 for most significant byte first, -1 for least significant first, or 0 for the native endianness of the host CPU.</dd><dt><span class="parameter">nails</span></dt><dd>Type: <a href="d9761bfb-1882-59d2-e89b-c6460141f9a6.htm">Math.Gmp.Native<span id="LSTCFF43A25_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>size_t</a><br />The number of most significant bits to skip.</dd><dt><span class="parameter">op</span></dt><dd>Type: <a href="8beda7fb-bbc4-b56f-fd1f-1459377ecb3b.htm">Math.Gmp.Native<span id="LSTCFF43A25_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCFF43A25_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpz_t</a><br />The operand integer.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">void_ptr</a><br />Either <span class="parameter">rop</span> or the allocated block.</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 parameters specify the format of the data produced.
Each word will be <span class="parameter">size</span> bytes and <span class="parameter">order</span> can be 1 for most significant word first
or -1 for least significant first.
Within each word <span class="parameter">endian</span> can be 1 for most significant byte first,
-1 for least significant first, or 0 for the native endianness of the host CPU.
The most significant <span class="parameter">nails</span> bits of each word are unused and set to zero,
this can be 0 to produce full words.
</p><p>
The number of words produced is written to <span class="parameter">countp</span>, or <span class="parameter">countp</span> can be NULL to discard the count.
<span class="parameter">rop</span> must have enough space for the data, or if <span class="parameter">rop</span> is NULL then a result array of the necessary
size is allocated using the current GMP allocation function
(see <a href="https://gmplib.org/manual/Custom-Allocation.html#Custom-Allocation">GNU MP - Custom Allocation</a>).
In either case the return value is the destination used, either <span class="parameter">rop</span> or the allocated block.
</p><p>
If <span class="parameter">op</span> is non-zero then the most significant word produced will be non-zero.
If <span class="parameter">op</span> is zero then the count returned will be zero and nothing written to <span class="parameter">rop</span>.
If <span class="parameter">rop</span> is NULL in this case, no block is allocated, just NULL is returned.
</p><p>
The sign of <span class="parameter">op</span> is ignored, just the absolute value is exported.
An application can use <a href="86b2033c-26c3-3889-9025-b2a638910a86.htm">mpz_sgn</a> to get the sign and handle it as desired.
(see <a href="https://gmplib.org/manual/Integer-Comparisons.html#Integer-Comparisons">GNU MP - Integer Comparisons</a>)
</p><p>
There are no data alignment restrictions on <span class="parameter">rop</span>, any address is allowed.
</p><p>
When an application is allocating space itself the required size can be determined with a calculation like the following.
Since <a href="7dfe367e-74d3-e782-860b-2314da9c44cf.htm">mpz_sizeinbase</a> always returns at least 1, count here will be at least one, which avoids any portability
problems with malloc(0), though if z is zero no space at all is actually needed (or written).
</p><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EAAEBA_tab1" class="codeSnippetContainerTabSingle">C++</div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EAAEBA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EAAEBA');return false;" title="Copy">Copy</a></div></div><div id="ID0EAAEBA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve">numb = <span class="highlight-number">8</span> * size - nail;
count = (mpz_sizeinbase(z, <span class="highlight-number">2</span>) + numb - <span class="highlight-number">1</span>) / numb;
p = malloc(count * size);</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EAAEBA");</script></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">// Create, initialize, and set the value of op to 0x800000000000000000000001.</span>
mpz_t op = <span class="highlight-keyword">new</span> mpz_t();
char_ptr <span class="highlight-keyword">value</span> = <span class="highlight-keyword">new</span> char_ptr(<span class="highlight-literal">"800000000000000000000001"</span>);
gmp_lib.mpz_init_set_str(op, <span class="highlight-keyword">value</span>, <span class="highlight-number">16</span>);
<span class="highlight-comment">// Export op as 3 words of 4 bytes each, first word is lsb, and first byte in each word is msb.</span>
void_ptr data = gmp_lib.allocate(<span class="highlight-number">12</span>);
ptr&lt;size_t&gt; countp = <span class="highlight-keyword">new</span> ptr&lt;size_t&gt;(<span class="highlight-number">0</span>);
gmp_lib.mpz_export(data, countp, <span class="highlight-number">-1</span>, <span class="highlight-number">4</span>, <span class="highlight-number">1</span>, <span class="highlight-number">0</span>, op);
<span class="highlight-comment">// Assert the result.</span>
<span class="highlight-keyword">byte</span>[] result = <span class="highlight-keyword">new</span> <span class="highlight-keyword">byte</span>[<span class="highlight-number">12</span>];
Marshal.Copy(data.ToIntPtr(), result, <span class="highlight-number">0</span>, <span class="highlight-number">12</span>);
Assert.IsTrue(result[<span class="highlight-number">0</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">1</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">2</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">3</span>] == <span class="highlight-number">0x01</span>);
Assert.IsTrue(result[<span class="highlight-number">4</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">5</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">6</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">7</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">8</span>] == <span class="highlight-number">0x80</span>);
Assert.IsTrue(result[<span class="highlight-number">9</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">10</span>] == <span class="highlight-number">0x00</span>);
Assert.IsTrue(result[<span class="highlight-number">11</span>] == <span class="highlight-number">0x00</span>);
<span class="highlight-comment">// Release unmanaged memory allocated for rop, data, and value.</span>
gmp_lib.mpz_clear(op);
gmp_lib.free(data);
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">' Create, initialize, and set the value of op to 0x800000000000000000000001.</span>
<span class="highlight-keyword">Dim</span> op <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> mpz_t()
<span class="highlight-keyword">Dim</span> value <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> char_ptr(<span class="highlight-literal">"800000000000000000000001"</span>)
gmp_lib.mpz_init_set_str(op, value, <span class="highlight-number">16</span>)
<span class="highlight-comment">' Export op as 3 words of 4 bytes each, first word is lsb, and first byte in each word is msb.</span>
<span class="highlight-keyword">Dim</span> data <span class="highlight-keyword">As</span> void_ptr = gmp_lib.allocate(<span class="highlight-number">12</span>)
<span class="highlight-keyword">Dim</span> countp <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> ptr(<span class="highlight-keyword">Of</span> size_t)(<span class="highlight-number">0</span>)
gmp_lib.mpz_export(data, countp, <span class="highlight-number">-1</span>, <span class="highlight-number">4</span>, <span class="highlight-number">1</span>, <span class="highlight-number">0</span>, op)
<span class="highlight-comment">' Assert the result.</span>
<span class="highlight-keyword">Dim</span> result <span class="highlight-keyword">As</span> <span class="highlight-keyword">Byte</span>() = <span class="highlight-keyword">New</span> <span class="highlight-keyword">Byte</span>(<span class="highlight-number">11</span>) { }
Marshal.Copy(data.ToIntPtr(), result, <span class="highlight-number">0</span>, <span class="highlight-number">12</span>)
Assert.IsTrue(result(<span class="highlight-number">0</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">1</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">2</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">3</span>) = <span class="highlight-number">&amp;H1</span>)
Assert.IsTrue(result(<span class="highlight-number">4</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">5</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">6</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">7</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">8</span>) = <span class="highlight-number">&amp;H80</span>)
Assert.IsTrue(result(<span class="highlight-number">9</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">10</span>) = <span class="highlight-number">&amp;H0</span>)
Assert.IsTrue(result(<span class="highlight-number">11</span>) = <span class="highlight-number">&amp;H0</span>)
<span class="highlight-comment">' Release unmanaged memory allocated for rop, data, and value.</span>
gmp_lib.mpz_clear(op)
gmp_lib.free(data)
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="5fbffc1a-1ac4-6ca6-e528-abe7f8c96667.htm">mpz_export 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="8c8c1e55-275f-cff8-2152-883a4eaa163c.htm">mpz_import</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#Integer_Import_and_Export">Integer Import and Export</a></a></div><div class="seeAlsoStyle"><a href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"><a href="https://gmplib.org/manual/Integer-Import-and-Export.html#Integer-Import-and-Export">GNU MP - Integer Import and Export</a></a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>